summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.mailmap2
-rw-r--r--.testr.conf6
-rw-r--r--HACKING.rst31
-rwxr-xr-xbin/nova-all22
-rwxr-xr-xbin/nova-api22
-rwxr-xr-xbin/nova-api-ec222
-rwxr-xr-xbin/nova-api-metadata22
-rwxr-xr-xbin/nova-api-os-compute22
-rwxr-xr-xbin/nova-baremetal-deploy-helper23
-rwxr-xr-xbin/nova-baremetal-manage22
-rwxr-xr-xbin/nova-cells22
-rwxr-xr-xbin/nova-cert22
-rwxr-xr-xbin/nova-clear-rabbit-queues22
-rwxr-xr-xbin/nova-compute22
-rwxr-xr-xbin/nova-conductor22
-rwxr-xr-xbin/nova-console22
-rwxr-xr-xbin/nova-consoleauth22
-rwxr-xr-xbin/nova-dhcpbridge22
-rwxr-xr-xbin/nova-manage23
-rwxr-xr-xbin/nova-network22
-rwxr-xr-xbin/nova-novncproxy22
-rwxr-xr-xbin/nova-objectstore22
-rwxr-xr-xbin/nova-rootwrap22
-rwxr-xr-xbin/nova-rpc-zmq-receiver22
-rwxr-xr-xbin/nova-scheduler22
-rwxr-xr-xbin/nova-spicehtml5proxy22
-rwxr-xr-xbin/nova-xvpvncproxy22
-rw-r--r--doc/api_samples/OS-SRV-USG/server-get-resp.json56
-rw-r--r--doc/api_samples/OS-SRV-USG/server-get-resp.xml19
-rw-r--r--doc/api_samples/OS-SRV-USG/server-post-req.json16
-rw-r--r--doc/api_samples/OS-SRV-USG/server-post-req.xml19
-rw-r--r--doc/api_samples/OS-SRV-USG/server-post-resp.json16
-rw-r--r--doc/api_samples/OS-SRV-USG/server-post-resp.xml6
-rw-r--r--doc/api_samples/OS-SRV-USG/servers-detail-resp.json58
-rw-r--r--doc/api_samples/OS-SRV-USG/servers-detail-resp.xml21
-rw-r--r--doc/api_samples/all_extensions/extensions-get-resp.json40
-rw-r--r--doc/api_samples/all_extensions/extensions-get-resp.xml15
-rw-r--r--doc/api_samples/all_extensions/server-get-resp.json22
-rw-r--r--doc/api_samples/all_extensions/server-get-resp.xml11
-rw-r--r--doc/api_samples/all_extensions/servers-details-resp.json22
-rw-r--r--doc/api_samples/all_extensions/servers-details-resp.xml12
-rw-r--r--doc/api_samples/os-cell-capacities/cells-capacities-resp.json18
-rw-r--r--doc/api_samples/os-cell-capacities/cells-capacities-resp.xml19
-rw-r--r--doc/api_samples/os-services/service-disable-log-put-req.json5
-rw-r--r--doc/api_samples/os-services/service-disable-log-put-req.xml2
-rw-r--r--doc/api_samples/os-services/service-disable-log-put-resp.json8
-rw-r--r--doc/api_samples/os-services/service-disable-log-put-resp.xml2
-rw-r--r--doc/api_samples/os-services/service-enable-put-req.json2
-rw-r--r--doc/api_samples/os-services/services-get-resp.json40
-rw-r--r--doc/api_samples/os-services/services-get-resp.xml6
-rw-r--r--doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json90
-rw-r--r--doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml37
-rw-r--r--doc/source/conf.py2
-rw-r--r--doc/source/devref/compute.rst4
-rw-r--r--doc/source/devref/development.environment.rst2
-rw-r--r--doc/source/devref/unit_tests.rst2
-rw-r--r--doc/source/index.rst5
-rw-r--r--etc/nova/nova.conf.sample470
-rw-r--r--etc/nova/policy.json6
-rw-r--r--nova/api/ec2/__init__.py2
-rw-r--r--nova/api/ec2/cloud.py9
-rw-r--r--nova/api/metadata/base.py2
-rw-r--r--nova/api/openstack/__init__.py120
-rw-r--r--nova/api/openstack/compute/__init__.py14
-rw-r--r--nova/api/openstack/compute/contrib/admin_actions.py2
-rw-r--r--nova/api/openstack/compute/contrib/aggregates.py38
-rw-r--r--nova/api/openstack/compute/contrib/attach_interfaces.py6
-rw-r--r--nova/api/openstack/compute/contrib/baremetal_nodes.py8
-rw-r--r--nova/api/openstack/compute/contrib/cell_capacities.py27
-rw-r--r--nova/api/openstack/compute/contrib/cells.py58
-rw-r--r--nova/api/openstack/compute/contrib/extended_quotas.py25
-rw-r--r--nova/api/openstack/compute/contrib/extended_services.py11
-rw-r--r--nova/api/openstack/compute/contrib/fixed_ips.py7
-rw-r--r--nova/api/openstack/compute/contrib/flavor_access.py12
-rw-r--r--nova/api/openstack/compute/contrib/flavormanage.py4
-rw-r--r--nova/api/openstack/compute/contrib/floating_ips.py4
-rw-r--r--nova/api/openstack/compute/contrib/instance_actions.py6
-rw-r--r--nova/api/openstack/compute/contrib/keypairs.py10
-rw-r--r--nova/api/openstack/compute/contrib/quotas.py18
-rw-r--r--nova/api/openstack/compute/contrib/security_groups.py69
-rw-r--r--nova/api/openstack/compute/contrib/server_usage.py97
-rw-r--r--nova/api/openstack/compute/contrib/services.py111
-rw-r--r--nova/api/openstack/compute/contrib/simple_tenant_usage.py2
-rw-r--r--nova/api/openstack/compute/contrib/used_limits.py23
-rw-r--r--nova/api/openstack/compute/contrib/used_limits_for_admin.py27
-rw-r--r--nova/api/openstack/compute/contrib/volumes.py2
-rw-r--r--nova/api/openstack/compute/flavors.py4
-rw-r--r--nova/api/openstack/compute/images.py4
-rw-r--r--nova/api/openstack/compute/plugins/__init__.py59
-rw-r--r--nova/api/openstack/compute/plugins/v3/consoles.py144
-rw-r--r--nova/api/openstack/compute/plugins/v3/extension_info.py105
-rw-r--r--nova/api/openstack/compute/plugins/v3/fixed_ips.py6
-rw-r--r--nova/api/openstack/compute/plugins/v3/ips.py116
-rw-r--r--nova/api/openstack/compute/plugins/v3/keypairs.py213
-rw-r--r--nova/api/openstack/compute/plugins/v3/servers.py1528
-rw-r--r--nova/api/openstack/compute/servers.py53
-rw-r--r--nova/api/openstack/compute/views/servers.py2
-rw-r--r--nova/api/openstack/extensions.py6
-rw-r--r--nova/api/openstack/wsgi.py13
-rw-r--r--nova/block_device.py178
-rw-r--r--nova/cells/filters/__init__.py62
-rw-r--r--nova/cells/filters/target_cell.py68
-rw-r--r--nova/cells/manager.py13
-rw-r--r--nova/cells/messaging.py17
-rw-r--r--nova/cells/opts.py3
-rw-r--r--nova/cells/rpcapi.py20
-rw-r--r--nova/cells/scheduler.py196
-rw-r--r--nova/cells/state.py11
-rw-r--r--nova/cells/weights/__init__.py43
-rw-r--r--nova/cells/weights/mute_child.py72
-rw-r--r--nova/cells/weights/ram_by_instance_type.py54
-rw-r--r--nova/cells/weights/weight_offset.py33
-rw-r--r--nova/cloudpipe/pipelib.py10
-rw-r--r--nova/cmd/baremetal_deploy_helper.py4
-rw-r--r--nova/cmd/manage.py10
-rw-r--r--nova/cmd/novnc.py44
-rw-r--r--nova/cmd/novncproxy.py30
-rw-r--r--nova/cmd/spicehtml5proxy.py36
-rw-r--r--nova/compute/__init__.py54
-rw-r--r--nova/compute/api.py546
-rw-r--r--nova/compute/cells_api.py30
-rw-r--r--nova/compute/flavors.py74
-rwxr-xr-xnova/compute/manager.py299
-rw-r--r--nova/compute/resource_tracker.py4
-rw-r--r--nova/compute/rpcapi.py3
-rw-r--r--nova/compute/utils.py2
-rw-r--r--nova/conductor/__init__.py9
-rw-r--r--nova/conductor/api.py343
-rw-r--r--nova/conductor/manager.py128
-rw-r--r--nova/conductor/rpcapi.py68
-rw-r--r--nova/console/xvp.py2
-rw-r--r--nova/consoleauth/manager.py4
-rw-r--r--nova/crypto.py10
-rw-r--r--nova/db/api.py134
-rw-r--r--nova/db/sqlalchemy/api.py629
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/179_change_cells_deleted_to_int.py225
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/180_fix_175_and_176_migration_sync_shadow_table.py61
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/181_fix_179_migration_sync_shadow_table.py28
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/182_fix_156_migration_sync_shadow_table.py56
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/183_fix_157_migration_sync_shadow_table.py30
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/184_fix_159_migration_sync_shadow_table.py63
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_downgrade.sql78
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_upgrade.sql76
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/185_rename_unique_constraints.py128
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py262
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/187_add_instance_groups.py121
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/188_add_reason_column_to_service.py36
-rw-r--r--nova/db/sqlalchemy/models.py289
-rw-r--r--nova/db/sqlalchemy/utils.py230
-rw-r--r--nova/exception.py63
-rw-r--r--nova/filters.py16
-rw-r--r--nova/hacking/checks.py24
-rw-r--r--nova/image/s3.py142
-rw-r--r--nova/locale/bg_BG/LC_MESSAGES/nova.po2668
-rw-r--r--nova/locale/bs/LC_MESSAGES/nova.po2726
-rw-r--r--nova/locale/ca/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/cs/LC_MESSAGES/nova.po2756
-rw-r--r--nova/locale/da/LC_MESSAGES/nova.po2726
-rw-r--r--nova/locale/de/LC_MESSAGES/nova.po2730
-rw-r--r--nova/locale/en_AU/LC_MESSAGES/nova.po2748
-rw-r--r--nova/locale/en_GB/LC_MESSAGES/nova.po2733
-rw-r--r--nova/locale/en_US/LC_MESSAGES/nova.po2737
-rw-r--r--nova/locale/es/LC_MESSAGES/nova.po2750
-rw-r--r--nova/locale/fi_FI/LC_MESSAGES/nova.po2668
-rw-r--r--nova/locale/fr/LC_MESSAGES/nova.po2754
-rw-r--r--nova/locale/hr/LC_MESSAGES/nova.po11300
-rw-r--r--nova/locale/hu/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/id/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/it/LC_MESSAGES/nova.po2739
-rw-r--r--nova/locale/it_IT/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/ja/LC_MESSAGES/nova.po2750
-rw-r--r--nova/locale/ka_GE/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/ko/LC_MESSAGES/nova.po2730
-rw-r--r--nova/locale/ko_KR/LC_MESSAGES/nova.po2730
-rw-r--r--nova/locale/ms/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/nb/LC_MESSAGES/nova.po2739
-rw-r--r--nova/locale/nl_NL/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/nova.pot2665
-rw-r--r--nova/locale/pt/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/pt_BR/LC_MESSAGES/nova.po2753
-rw-r--r--nova/locale/ro/LC_MESSAGES/nova.po11300
-rw-r--r--nova/locale/ru/LC_MESSAGES/nova.po2755
-rw-r--r--nova/locale/ru_RU/LC_MESSAGES/nova.po11300
-rw-r--r--nova/locale/sw_KE/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/tl/LC_MESSAGES/nova.po2726
-rw-r--r--nova/locale/tr/LC_MESSAGES/nova.po2726
-rw-r--r--nova/locale/tr_TR/LC_MESSAGES/nova.po2752
-rw-r--r--nova/locale/uk/LC_MESSAGES/nova.po2726
-rw-r--r--nova/locale/vi_VN/LC_MESSAGES/nova.po2726
-rw-r--r--nova/locale/zh_CN/LC_MESSAGES/nova.po2756
-rw-r--r--nova/locale/zh_HK/LC_MESSAGES/nova.po11299
-rw-r--r--nova/locale/zh_TW/LC_MESSAGES/nova.po2728
-rw-r--r--nova/manager.py10
-rw-r--r--nova/network/api.py38
-rw-r--r--nova/network/linux_net.py2
-rw-r--r--nova/network/model.py75
-rw-r--r--nova/network/quantumv2/__init__.py59
-rw-r--r--nova/network/quantumv2/api.py6
-rw-r--r--nova/network/security_group/quantum_driver.py38
-rw-r--r--nova/network/security_group/security_group_base.py8
-rw-r--r--nova/notifications.py6
-rw-r--r--nova/objects/__init__.py13
-rw-r--r--nova/objects/base.py430
-rw-r--r--nova/objects/instance.py295
-rw-r--r--nova/objects/utils.py88
-rw-r--r--nova/openstack/common/config/__init__.py0
-rwxr-xr-x[-rw-r--r--]nova/openstack/common/config/generator.py (renamed from tools/conf/extract_opts.py)76
-rw-r--r--nova/openstack/common/db/sqlalchemy/session.py7
-rw-r--r--nova/openstack/common/middleware/__init__.py0
-rw-r--r--nova/openstack/common/middleware/correlation_id.py29
-rw-r--r--nova/openstack/common/processutils.py2
-rw-r--r--nova/openstack/common/rpc/impl_qpid.py111
-rw-r--r--nova/paths.py3
-rw-r--r--nova/scheduler/chance.py5
-rw-r--r--nova/scheduler/driver.py2
-rw-r--r--nova/scheduler/filter_scheduler.py9
-rw-r--r--nova/scheduler/filters/affinity_filter.py2
-rw-r--r--nova/scheduler/filters/aggregate_instance_extra_specs.py8
-rw-r--r--nova/scheduler/filters/compute_capabilities_filter.py2
-rw-r--r--nova/scheduler/filters/compute_filter.py4
-rw-r--r--nova/scheduler/filters/disk_filter.py4
-rw-r--r--nova/scheduler/filters/image_props_filter.py12
-rw-r--r--nova/scheduler/filters/io_ops_filter.py4
-rw-r--r--nova/scheduler/filters/num_instances_filter.py3
-rw-r--r--nova/scheduler/filters/ram_filter.py4
-rw-r--r--nova/scheduler/filters/retry_filter.py4
-rw-r--r--nova/scheduler/host_manager.py12
-rw-r--r--nova/scheduler/scheduler_options.py4
-rw-r--r--nova/scheduler/utils.py33
-rw-r--r--nova/service.py3
-rw-r--r--nova/storage/linuxscsi.py24
-rw-r--r--nova/test.py44
-rw-r--r--nova/tests/api/ec2/test_api.py (renamed from nova/tests/test_api.py)2
-rw-r--r--nova/tests/api/ec2/test_cinder_cloud.py16
-rw-r--r--nova/tests/api/ec2/test_cloud.py99
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_admin_actions.py67
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_cells.py72
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_coverage_ext.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_fixed_ips.py19
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_flavor_access.py44
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_flavor_disabled.py12
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_flavor_manage.py10
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_flavor_rxtx.py12
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_flavor_swap.py13
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_flavorextradata.py14
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_instance_actions.py8
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_keypairs.py32
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_quantum_security_groups.py128
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_quotas.py33
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_security_groups.py56
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_server_usage.py131
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_services.py231
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py12
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_used_limits.py119
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_volumes.py2
-rw-r--r--nova/tests/api/openstack/compute/extensions/test_plugin_api_extensions.py (renamed from nova/tests/test_plugin_api_extensions.py)0
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_consoles.py295
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_keypairs.py405
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_servers.py5813
-rw-r--r--nova/tests/api/openstack/compute/test_extensions.py21
-rw-r--r--nova/tests/api/openstack/compute/test_flavors.py24
-rw-r--r--nova/tests/api/openstack/compute/test_limits.py2
-rw-r--r--nova/tests/api/openstack/compute/test_server_actions.py31
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py151
-rw-r--r--nova/tests/api/openstack/compute/test_v3_extensions.py141
-rw-r--r--nova/tests/api/openstack/fakes.py53
-rw-r--r--nova/tests/api/openstack/test_mapper.py48
-rw-r--r--nova/tests/api/openstack/test_wsgi.py112
-rw-r--r--nova/tests/cells/test_cells_filters.py121
-rw-r--r--nova/tests/cells/test_cells_manager.py21
-rw-r--r--nova/tests/cells/test_cells_messaging.py17
-rw-r--r--nova/tests/cells/test_cells_rpcapi.py25
-rw-r--r--nova/tests/cells/test_cells_scheduler.py426
-rw-r--r--nova/tests/cells/test_cells_state_manager.py48
-rw-r--r--nova/tests/cells/test_cells_weights.py217
-rw-r--r--nova/tests/compute/test_compute.py1079
-rw-r--r--nova/tests/compute/test_compute_cells.py3
-rw-r--r--nova/tests/compute/test_compute_utils.py47
-rw-r--r--nova/tests/compute/test_host_api.py3
-rw-r--r--nova/tests/compute/test_keypairs.py174
-rw-r--r--nova/tests/compute/test_resource_tracker.py22
-rw-r--r--nova/tests/compute/test_virtapi.py7
-rw-r--r--nova/tests/compute/test_vmmode.py (renamed from nova/tests/test_vmmode.py)0
-rw-r--r--nova/tests/conductor/test_conductor.py159
-rw-r--r--nova/tests/console/test_console.py1
-rw-r--r--nova/tests/db/test_db_api.py (renamed from nova/tests/test_db_api.py)1228
-rw-r--r--nova/tests/db/test_migration_utils.py (renamed from nova/tests/test_migration_utils.py)291
-rw-r--r--nova/tests/db/test_migrations.conf (renamed from nova/tests/test_migrations.conf)0
-rw-r--r--nova/tests/db/test_migrations.py (renamed from nova/tests/test_migrations.py)339
-rw-r--r--nova/tests/fake_instance.py41
-rw-r--r--nova/tests/fake_ldap.py12
-rw-r--r--nova/tests/fake_network.py5
-rw-r--r--nova/tests/fake_policy.py8
-rw-r--r--nova/tests/fake_utils.py28
-rw-r--r--nova/tests/image/test_s3.py33
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.json.tpl56
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.xml.tpl19
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.json.tpl16
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.xml.tpl19
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.json.tpl16
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.xml.tpl6
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.json.tpl57
-rw-r--r--nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.xml.tpl21
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.json.tpl40
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.xml.tpl15
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl2
-rw-r--r--nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.json.tpl18
-rw-r--r--nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.xml.tpl19
-rw-r--r--nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.json.tpl5
-rw-r--r--nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.json.tpl8
-rw-r--r--nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-services/services-get-resp.json.tpl40
-rw-r--r--nova/tests/integrated/api_samples/os-services/services-get-resp.xml.tpl7
-rw-r--r--nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json.tpl90
-rw-r--r--nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml.tpl37
-rw-r--r--nova/tests/integrated/test_api_samples.py161
-rw-r--r--nova/tests/integrated/test_servers.py2
-rw-r--r--nova/tests/network/test_api.py8
-rw-r--r--nova/tests/network/test_manager.py2
-rw-r--r--nova/tests/network/test_network_info.py28
-rw-r--r--nova/tests/network/test_quantumv2.py19
-rw-r--r--nova/tests/objects/__init__.py13
-rw-r--r--nova/tests/objects/test_instance.py312
-rw-r--r--nova/tests/objects/test_objects.py491
-rw-r--r--nova/tests/scheduler/fakes.py11
-rw-r--r--nova/tests/scheduler/test_chance_scheduler.py9
-rw-r--r--nova/tests/scheduler/test_filter_scheduler.py59
-rw-r--r--nova/tests/scheduler/test_filters.py (renamed from nova/tests/test_filters.py)33
-rw-r--r--nova/tests/scheduler/test_host_filters.py7
-rw-r--r--nova/tests/scheduler/test_host_manager.py6
-rw-r--r--nova/tests/scheduler/test_rpcapi.py2
-rw-r--r--nova/tests/scheduler/test_scheduler.py34
-rw-r--r--nova/tests/scheduler/test_scheduler_options.py2
-rw-r--r--nova/tests/scheduler/test_weights.py4
-rw-r--r--nova/tests/test_block_device.py123
-rw-r--r--nova/tests/test_exception.py14
-rw-r--r--nova/tests/test_flavors.py (renamed from nova/tests/test_instance_types.py)140
-rw-r--r--nova/tests/test_linuxscsi.py72
-rw-r--r--nova/tests/test_manager.py35
-rw-r--r--nova/tests/test_metadata.py16
-rw-r--r--nova/tests/test_misc.py61
-rw-r--r--nova/tests/test_notifications.py9
-rw-r--r--nova/tests/test_quota.py10
-rw-r--r--nova/tests/test_utils.py2
-rw-r--r--nova/tests/utils.py4
-rw-r--r--nova/tests/virt/hyperv/__init__.py (renamed from nova/tests/hyperv/__init__.py)0
-rw-r--r--nova/tests/virt/hyperv/db_fakes.py (renamed from nova/tests/hyperv/db_fakes.py)2
-rw-r--r--nova/tests/virt/hyperv/fake.py (renamed from nova/tests/hyperv/fake.py)0
-rw-r--r--nova/tests/virt/hyperv/test_hypervapi.py (renamed from nova/tests/test_hypervapi.py)35
-rw-r--r--nova/tests/virt/libvirt/fake_libvirt_utils.py5
-rw-r--r--nova/tests/virt/libvirt/fakelibvirt.py4
-rw-r--r--nova/tests/virt/libvirt/test_fakelibvirt.py6
-rw-r--r--nova/tests/virt/libvirt/test_image_utils.py (renamed from nova/tests/test_image_utils.py)0
-rw-r--r--nova/tests/virt/libvirt/test_imagebackend.py35
-rw-r--r--nova/tests/virt/libvirt/test_libvirt.py73
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_blockinfo.py2
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_config.py49
-rw-r--r--nova/tests/virt/libvirt/test_libvirt_volume.py98
-rw-r--r--nova/tests/virt/powervm/__init__.py (renamed from nova/tests/xenapi/__init__.py)8
-rw-r--r--nova/tests/virt/powervm/test_powervm.py (renamed from nova/tests/test_powervm.py)208
-rw-r--r--nova/tests/virt/test_driver.py (renamed from nova/tests/test_driver.py)4
-rw-r--r--nova/tests/virt/test_virt.py (renamed from nova/tests/test_virt.py)0
-rw-r--r--nova/tests/virt/test_virt_disk.py (renamed from nova/tests/test_virt_disk.py)0
-rw-r--r--nova/tests/virt/test_virt_disk_vfs_guestfs.py (renamed from nova/tests/test_virt_disk_vfs_guestfs.py)0
-rw-r--r--nova/tests/virt/test_virt_disk_vfs_localfs.py (renamed from nova/tests/test_virt_disk_vfs_localfs.py)0
-rw-r--r--nova/tests/virt/test_virt_drivers.py (renamed from nova/tests/test_virt_drivers.py)0
-rw-r--r--nova/tests/virt/vmwareapi/__init__.py (renamed from nova/tests/vmwareapi/__init__.py)5
-rw-r--r--nova/tests/virt/vmwareapi/db_fakes.py (renamed from nova/tests/vmwareapi/db_fakes.py)2
-rw-r--r--nova/tests/virt/vmwareapi/stubs.py (renamed from nova/tests/vmwareapi/stubs.py)0
-rw-r--r--nova/tests/virt/vmwareapi/test_vmwareapi.py (renamed from nova/tests/test_vmwareapi.py)115
-rw-r--r--nova/tests/virt/vmwareapi/test_vmwareapi_vif.py (renamed from nova/tests/test_vmwareapi_vif.py)0
-rw-r--r--nova/tests/virt/vmwareapi/test_vmwareapi_vm_util.py (renamed from nova/tests/test_vmwareapi_vm_util.py)0
-rw-r--r--nova/tests/virt/vmwareapi/test_vmwareapi_vmops.py (renamed from nova/tests/test_vmwareapi_vmops.py)0
-rw-r--r--nova/tests/virt/xenapi/imageupload/test_glance.py4
-rw-r--r--nova/tests/virt/xenapi/stubs.py (renamed from nova/tests/xenapi/stubs.py)0
-rw-r--r--nova/tests/virt/xenapi/test_agent.py51
-rw-r--r--nova/tests/virt/xenapi/test_vm_utils.py454
-rw-r--r--nova/tests/virt/xenapi/test_vmops.py75
-rw-r--r--nova/tests/virt/xenapi/test_volumeops.py2
-rw-r--r--nova/tests/virt/xenapi/test_xenapi.py (renamed from nova/tests/test_xenapi.py)53
-rw-r--r--nova/tests/virt/xenapi/vm_rrd.xml (renamed from nova/tests/xenapi/vm_rrd.xml)0
-rw-r--r--nova/tests/xenapi/test_vm_utils.py377
-rw-r--r--nova/utils.py32
-rw-r--r--nova/virt/baremetal/ipmi.py2
-rw-r--r--nova/virt/baremetal/pxe.py2
-rwxr-xr-xnova/virt/baremetal/tilera.py15
-rwxr-xr-xnova/virt/disk/api.py2
-rwxr-xr-xnova/virt/driver.py28
-rwxr-xr-xnova/virt/fake.py6
-rwxr-xr-xnova/virt/hyperv/driver.py8
-rw-r--r--nova/virt/hyperv/imagecache.py2
-rw-r--r--nova/virt/hyperv/migrationops.py10
-rw-r--r--nova/virt/libvirt/blockinfo.py2
-rw-r--r--nova/virt/libvirt/config.py16
-rwxr-xr-xnova/virt/libvirt/driver.py98
-rwxr-xr-xnova/virt/libvirt/imagebackend.py33
-rwxr-xr-xnova/virt/libvirt/utils.py20
-rw-r--r--nova/virt/libvirt/volume.py106
-rw-r--r--nova/virt/powervm/blockdev.py65
-rwxr-xr-xnova/virt/powervm/driver.py15
-rw-r--r--nova/virt/powervm/operator.py11
-rwxr-xr-xnova/virt/vmwareapi/driver.py9
-rw-r--r--nova/virt/vmwareapi/fake.py3
-rw-r--r--nova/virt/vmwareapi/network_util.py5
-rw-r--r--nova/virt/vmwareapi/read_write_util.py6
-rw-r--r--nova/virt/vmwareapi/vmops.py15
-rw-r--r--nova/virt/xenapi/agent.py34
-rwxr-xr-xnova/virt/xenapi/driver.py11
-rw-r--r--nova/virt/xenapi/fake.py8
-rw-r--r--nova/virt/xenapi/imageupload/glance.py5
-rw-r--r--nova/virt/xenapi/vm_utils.py48
-rw-r--r--nova/virt/xenapi/vmops.py73
-rw-r--r--openstack-common.conf2
-rw-r--r--plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec1
-rwxr-xr-xplugins/xenserver/xenapi/etc/xapi.d/plugins/console80
-rw-r--r--requirements.txt (renamed from tools/pip-requires)0
-rw-r--r--setup.cfg8
-rw-r--r--smoketests/base.py2
-rw-r--r--test-requirements.txt (renamed from tools/test-requires)0
-rwxr-xr-xtools/colorizer.py2
-rwxr-xr-xtools/conf/analyze_opts.py4
-rwxr-xr-xtools/conf/generate_sample.sh6
-rw-r--r--tools/install_venv.py4
-rwxr-xr-xtools/lintstack.py4
-rw-r--r--tools/patch_tox_venv.py4
-rw-r--r--tox.ini11
430 files changed, 210286 insertions, 36102 deletions
diff --git a/.mailmap b/.mailmap
index 0dcbdb4c8..314596aa1 100644
--- a/.mailmap
+++ b/.mailmap
@@ -86,10 +86,12 @@ Dan Wendlandt <dan@nicira.com> danwent <dan@nicira.com>
Dan Wendlandt <dan@nicira.com> danwent <danwent@dan-xs3-cs>
Dan Wendlandt <dan@nicira.com> danwent@gmail.com <>
Dan Wendlandt <dan@nicira.com> danwent@gmail.com <dan@nicira.com>
+Davanum Srinivas <dims@linux.vnet.ibm.com> Davanum Srinivas <davanum@gmail.com>
Édouard Thuleau <edouard.thuleau@orange.com> Thuleau Édouard <thuleau@gmail.com>
Jake Dahn <jake@ansolabs.com> jakedahn <jake@ansolabs.com>
Jason Koelker <jason@koelker.net> Jason Kölker <jason@koelker.net>
Jay Pipes <jaypipes@gmail.com> jaypipes@gmail.com <>
+Jiajun Liu <jiajun@unitedstack.com> <iamljj@gmail.com>
Jian Wen <jian.wen@canonical.com> <jian.wen@ubuntu.com>
Jian Wen <jian.wen@canonical.com> <wenjianhn@gmail.com>
Joe Gordon <joe.gordon0@gmail.com> <jogo@cloudscaling.com>
diff --git a/.testr.conf b/.testr.conf
index 1036ba0ca..4bc514d62 100644
--- a/.testr.conf
+++ b/.testr.conf
@@ -1,4 +1,8 @@
[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ ./nova/tests $LISTOPT $IDOPTION
+test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
+ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
+ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
+ ${PYTHON:-python} -m subunit.run discover -t ./ ./nova/tests $LISTOPT $IDOPTION
+
test_id_option=--load-list $IDFILE
test_list_option=--list
diff --git a/HACKING.rst b/HACKING.rst
index 307d7477c..c272bfc25 100644
--- a/HACKING.rst
+++ b/HACKING.rst
@@ -211,6 +211,25 @@ Example::
LOG.error(msg % {"s_id": "1234", "m_key": "imageId"})
+Python 3.x compatibility
+------------------------
+Nova code should stay Python 3.x compatible. That means all Python 2.x-only
+constructs should be avoided. An example is
+
+ except x,y:
+
+Use
+
+ except x as y:
+
+instead. Other Python 3.x compatility issues, like e.g. print operator
+can be avoided in new code by using
+
+ from __future__ import print_function
+
+at the top of your module.
+
+
Creating Unit Tests
-------------------
For every new feature, unit tests should be created that both test and
@@ -243,18 +262,18 @@ uses.) More information about testr can be found at:
http://wiki.openstack.org/testr
-openstack-common
+oslo-incubator
----------------
-A number of modules from openstack-common are imported into the project.
+A number of modules from oslo-incubator are imported into the project.
-These modules are "incubating" in openstack-common and are kept in sync
-with the help of openstack-common's update.py script. See:
+These modules are "incubating" in oslo-incubator and are kept in sync
+with the help of oslo's update.py script. See:
- http://wiki.openstack.org/CommonLibrary#Incubation
+ https://wiki.openstack.org/wiki/Oslo#Incubation
The copy of the code should never be directly modified here. Please
-always update openstack-common first and then run the script to copy
+always update oslo-incubator first and then run the script to copy
the changes across.
OpenStack Trademark
diff --git a/bin/nova-all b/bin/nova-all
deleted file mode 100755
index f419b2825..000000000
--- a/bin/nova-all
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import all
-
-all.main()
diff --git a/bin/nova-api b/bin/nova-api
deleted file mode 100755
index 4620dfc21..000000000
--- a/bin/nova-api
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import api
-
-api.main()
diff --git a/bin/nova-api-ec2 b/bin/nova-api-ec2
deleted file mode 100755
index 9b14cf658..000000000
--- a/bin/nova-api-ec2
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import api_ec2
-
-api_ec2.main()
diff --git a/bin/nova-api-metadata b/bin/nova-api-metadata
deleted file mode 100755
index 5ea1ce4f4..000000000
--- a/bin/nova-api-metadata
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import api_metadata
-
-api_metadata.main()
diff --git a/bin/nova-api-os-compute b/bin/nova-api-os-compute
deleted file mode 100755
index 8ce490013..000000000
--- a/bin/nova-api-os-compute
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import api_os_compute
-
-api_os_compute.main()
diff --git a/bin/nova-baremetal-deploy-helper b/bin/nova-baremetal-deploy-helper
deleted file mode 100755
index 09cf72b32..000000000
--- a/bin/nova-baremetal-deploy-helper
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import baremetal_deploy_helper
-
-
-baremetal_deploy_helper.main()
diff --git a/bin/nova-baremetal-manage b/bin/nova-baremetal-manage
deleted file mode 100755
index f84459c44..000000000
--- a/bin/nova-baremetal-manage
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import baremetal_manage
-
-baremetal_manage.main()
diff --git a/bin/nova-cells b/bin/nova-cells
deleted file mode 100755
index 763560b02..000000000
--- a/bin/nova-cells
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import cells
-
-cells.main()
diff --git a/bin/nova-cert b/bin/nova-cert
deleted file mode 100755
index 0cf04e0ea..000000000
--- a/bin/nova-cert
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import cert
-
-cert.main()
diff --git a/bin/nova-clear-rabbit-queues b/bin/nova-clear-rabbit-queues
deleted file mode 100755
index 8de7c6d9e..000000000
--- a/bin/nova-clear-rabbit-queues
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import clear_rabbit_queues
-
-clear_rabbit_queues.main()
diff --git a/bin/nova-compute b/bin/nova-compute
deleted file mode 100755
index a2ab0d18b..000000000
--- a/bin/nova-compute
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import compute
-
-compute.main()
diff --git a/bin/nova-conductor b/bin/nova-conductor
deleted file mode 100755
index d88fe264d..000000000
--- a/bin/nova-conductor
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import conductor
-
-conductor.main()
diff --git a/bin/nova-console b/bin/nova-console
deleted file mode 100755
index bf6f0539d..000000000
--- a/bin/nova-console
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import console
-
-console.main()
diff --git a/bin/nova-consoleauth b/bin/nova-consoleauth
deleted file mode 100755
index 3de6bc2d3..000000000
--- a/bin/nova-consoleauth
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import consoleauth
-
-consoleauth.main()
diff --git a/bin/nova-dhcpbridge b/bin/nova-dhcpbridge
deleted file mode 100755
index de65f999d..000000000
--- a/bin/nova-dhcpbridge
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import dhcpbridge
-
-dhcpbridge.main()
diff --git a/bin/nova-manage b/bin/nova-manage
deleted file mode 100755
index 10169e019..000000000
--- a/bin/nova-manage
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# Temporary shim to do a devstack transition
-from nova.cmd import manage
-
-manage.main()
diff --git a/bin/nova-network b/bin/nova-network
deleted file mode 100755
index d561daab8..000000000
--- a/bin/nova-network
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import network
-
-network.main()
diff --git a/bin/nova-novncproxy b/bin/nova-novncproxy
deleted file mode 100755
index c0715a7a2..000000000
--- a/bin/nova-novncproxy
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import novncproxy
-
-novncproxy.main()
diff --git a/bin/nova-objectstore b/bin/nova-objectstore
deleted file mode 100755
index d0fafbf2f..000000000
--- a/bin/nova-objectstore
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import objectstore
-
-objectstore.main()
diff --git a/bin/nova-rootwrap b/bin/nova-rootwrap
deleted file mode 100755
index 5e3c4fa23..000000000
--- a/bin/nova-rootwrap
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.openstack.common.rootwrap import cmd
-
-cmd.main()
diff --git a/bin/nova-rpc-zmq-receiver b/bin/nova-rpc-zmq-receiver
deleted file mode 100755
index 3afe3ed27..000000000
--- a/bin/nova-rpc-zmq-receiver
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import rpc_zmq_receiver
-
-rpc_zmq_receiver.main()
diff --git a/bin/nova-scheduler b/bin/nova-scheduler
deleted file mode 100755
index b53998f41..000000000
--- a/bin/nova-scheduler
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import scheduler
-
-scheduler.main()
diff --git a/bin/nova-spicehtml5proxy b/bin/nova-spicehtml5proxy
deleted file mode 100755
index 3ec489b78..000000000
--- a/bin/nova-spicehtml5proxy
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import spicehtml5proxy
-
-spicehtml5proxy.main()
diff --git a/bin/nova-xvpvncproxy b/bin/nova-xvpvncproxy
deleted file mode 100755
index 2ca0f7ff9..000000000
--- a/bin/nova-xvpvncproxy
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Temporary shim to do a devstack transition
-from nova.cmd import xvpvncproxy
-
-xvpvncproxy.main()
diff --git a/doc/api_samples/OS-SRV-USG/server-get-resp.json b/doc/api_samples/OS-SRV-USG/server-get-resp.json
new file mode 100644
index 000000000..ffb03ebc6
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/server-get-resp.json
@@ -0,0 +1,56 @@
+{
+ "server": {
+ "OS-SRV-USG:launched_at": "2013-05-02T19:26:38.326387",
+ "OS-SRV-USG:terminated_at": null,
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "addresses": {
+ "private": [
+ {
+ "addr": "192.168.0.3",
+ "version": 4
+ }
+ ]
+ },
+ "created": "2013-05-02T19:26:37Z",
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "http://openstack.example.com/openstack/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "hostId": "1127931217d16e2c8b1e1ec54de06f17805bfaadc0d36525879450d1",
+ "id": "cbdfb561-b94b-4b98-bb22-7d62575114b1",
+ "image": {
+ "id": "70a599e0-31e7-49b7-b260-868f441e862b",
+ "links": [
+ {
+ "href": "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "links": [
+ {
+ "href": "http://openstack.example.com/v2/openstack/servers/cbdfb561-b94b-4b98-bb22-7d62575114b1",
+ "rel": "self"
+ },
+ {
+ "href": "http://openstack.example.com/openstack/servers/cbdfb561-b94b-4b98-bb22-7d62575114b1",
+ "rel": "bookmark"
+ }
+ ],
+ "metadata": {
+ "My Server Name": "Apache1"
+ },
+ "name": "new-server-test",
+ "progress": 0,
+ "status": "ACTIVE",
+ "tenant_id": "openstack",
+ "updated": "2013-05-02T19:26:38Z",
+ "user_id": "fake"
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/OS-SRV-USG/server-get-resp.xml b/doc/api_samples/OS-SRV-USG/server-get-resp.xml
new file mode 100644
index 000000000..f5336a147
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/server-get-resp.xml
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<server xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="2013-05-02T19:26:46Z" hostId="d2e0951aac9e7db88dd51f90746dc2094ce3fe7d8e1bc6a46057f7f7" name="new-server-test" created="2013-05-02T19:26:45Z" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="19dd0e0b-d59f-480f-b175-82c8f921ad5b" OS-SRV-USG:terminated_at="None" OS-SRV-USG:launched_at="2013-05-02 19:26:46.727461">
+ <image id="70a599e0-31e7-49b7-b260-868f441e862b">
+ <atom:link href="http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b" rel="bookmark"/>
+ </image>
+ <flavor id="1">
+ <atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
+ </flavor>
+ <metadata>
+ <meta key="My Server Name">Apache1</meta>
+ </metadata>
+ <addresses>
+ <network id="private">
+ <ip version="4" addr="192.168.0.3"/>
+ </network>
+ </addresses>
+ <atom:link href="http://openstack.example.com/v2/openstack/servers/19dd0e0b-d59f-480f-b175-82c8f921ad5b" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/servers/19dd0e0b-d59f-480f-b175-82c8f921ad5b" rel="bookmark"/>
+</server> \ No newline at end of file
diff --git a/doc/api_samples/OS-SRV-USG/server-post-req.json b/doc/api_samples/OS-SRV-USG/server-post-req.json
new file mode 100644
index 000000000..d88eb4122
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/server-post-req.json
@@ -0,0 +1,16 @@
+{
+ "server" : {
+ "name" : "new-server-test",
+ "imageRef" : "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
+ "flavorRef" : "http://openstack.example.com/openstack/flavors/1",
+ "metadata" : {
+ "My Server Name" : "Apache1"
+ },
+ "personality" : [
+ {
+ "path" : "/etc/banner.txt",
+ "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/OS-SRV-USG/server-post-req.xml b/doc/api_samples/OS-SRV-USG/server-post-req.xml
new file mode 100644
index 000000000..0a3c8bb53
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/server-post-req.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server xmlns="http://docs.openstack.org/compute/api/v1.1" imageRef="http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b" flavorRef="http://openstack.example.com/openstack/flavors/1" name="new-server-test">
+ <metadata>
+ <meta key="My Server Name">Apache1</meta>
+ </metadata>
+ <personality>
+ <file path="/etc/banner.txt">
+ ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
+ dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
+ IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
+ c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
+ QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
+ ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
+ dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
+ c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
+ b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
+ </file>
+ </personality>
+</server> \ No newline at end of file
diff --git a/doc/api_samples/OS-SRV-USG/server-post-resp.json b/doc/api_samples/OS-SRV-USG/server-post-resp.json
new file mode 100644
index 000000000..24a497544
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/server-post-resp.json
@@ -0,0 +1,16 @@
+{
+ "server": {
+ "adminPass": "8dRuZpE2Pr7z",
+ "id": "cbdfb561-b94b-4b98-bb22-7d62575114b1",
+ "links": [
+ {
+ "href": "http://openstack.example.com/v2/openstack/servers/cbdfb561-b94b-4b98-bb22-7d62575114b1",
+ "rel": "self"
+ },
+ {
+ "href": "http://openstack.example.com/openstack/servers/cbdfb561-b94b-4b98-bb22-7d62575114b1",
+ "rel": "bookmark"
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/OS-SRV-USG/server-post-resp.xml b/doc/api_samples/OS-SRV-USG/server-post-resp.xml
new file mode 100644
index 000000000..bac663bd3
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/server-post-resp.xml
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<server xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" id="ecaa5d95-14b1-4ee7-ad13-f91614e44167" adminPass="Tczo7hUJw2US">
+ <metadata/>
+ <atom:link href="http://openstack.example.com/v2/openstack/servers/ecaa5d95-14b1-4ee7-ad13-f91614e44167" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/servers/ecaa5d95-14b1-4ee7-ad13-f91614e44167" rel="bookmark"/>
+</server> \ No newline at end of file
diff --git a/doc/api_samples/OS-SRV-USG/servers-detail-resp.json b/doc/api_samples/OS-SRV-USG/servers-detail-resp.json
new file mode 100644
index 000000000..183a8c92e
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/servers-detail-resp.json
@@ -0,0 +1,58 @@
+{
+ "servers": [
+ {
+ "OS-SRV-USG:launched_at": "2013-05-02T19:26:45.066375",
+ "OS-SRV-USG:terminated_at": null,
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "addresses": {
+ "private": [
+ {
+ "addr": "192.168.0.3",
+ "version": 4
+ }
+ ]
+ },
+ "created": "2013-05-02T19:26:44Z",
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "http://openstack.example.com/openstack/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "hostId": "15ac731a430372d42a333d9d316ff2af70e0bf5eee523a0bc43779f5",
+ "id": "fe828a86-aad7-464b-8995-280bedf4fa9b",
+ "image": {
+ "id": "70a599e0-31e7-49b7-b260-868f441e862b",
+ "links": [
+ {
+ "href": "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "links": [
+ {
+ "href": "http://openstack.example.com/v2/openstack/servers/fe828a86-aad7-464b-8995-280bedf4fa9b",
+ "rel": "self"
+ },
+ {
+ "href": "http://openstack.example.com/openstack/servers/fe828a86-aad7-464b-8995-280bedf4fa9b",
+ "rel": "bookmark"
+ }
+ ],
+ "metadata": {
+ "My Server Name": "Apache1"
+ },
+ "name": "new-server-test",
+ "progress": 0,
+ "status": "ACTIVE",
+ "tenant_id": "openstack",
+ "updated": "2013-05-02T19:26:45Z",
+ "user_id": "fake"
+ }
+ ]
+} \ No newline at end of file
diff --git a/doc/api_samples/OS-SRV-USG/servers-detail-resp.xml b/doc/api_samples/OS-SRV-USG/servers-detail-resp.xml
new file mode 100644
index 000000000..099f2ded1
--- /dev/null
+++ b/doc/api_samples/OS-SRV-USG/servers-detail-resp.xml
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<servers xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <server status="ACTIVE" updated="2013-05-02T19:26:40Z" hostId="6f0c555353e6a6269b27264081a68cd31eab18b7f5c008975757689a" name="new-server-test" created="2013-05-02T19:26:39Z" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="ecaa5d95-14b1-4ee7-ad13-f91614e44167" OS-SRV-USG:terminated_at="None" OS-SRV-USG:launched_at="2013-05-02 19:26:40.101839">
+ <image id="70a599e0-31e7-49b7-b260-868f441e862b">
+ <atom:link href="http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b" rel="bookmark"/>
+ </image>
+ <flavor id="1">
+ <atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
+ </flavor>
+ <metadata>
+ <meta key="My Server Name">Apache1</meta>
+ </metadata>
+ <addresses>
+ <network id="private">
+ <ip version="4" addr="192.168.0.3"/>
+ </network>
+ </addresses>
+ <atom:link href="http://openstack.example.com/v2/openstack/servers/ecaa5d95-14b1-4ee7-ad13-f91614e44167" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/servers/ecaa5d95-14b1-4ee7-ad13-f91614e44167" rel="bookmark"/>
+ </server>
+</servers> \ No newline at end of file
diff --git a/doc/api_samples/all_extensions/extensions-get-resp.json b/doc/api_samples/all_extensions/extensions-get-resp.json
index d7c2a646c..09ede77dc 100644
--- a/doc/api_samples/all_extensions/extensions-get-resp.json
+++ b/doc/api_samples/all_extensions/extensions-get-resp.json
@@ -89,6 +89,14 @@
"updated": "2011-09-14T00:00:00+00:00"
},
{
+ "alias": "OS-SRV-USG",
+ "description": "Adds launched_at and terminated_at on Instances.",
+ "links": [],
+ "name": "ServerUsage",
+ "namespace": "http://docs.openstack.org/compute/ext/server_usage/api/v1.1",
+ "updated": "2013-04-29T00:00:00+00:00"
+ },
+ {
"alias": "OS-SCH-HNT",
"description": "Pass arbitrary key/value pairs to the scheduler.",
"links": [],
@@ -153,6 +161,14 @@
"updated": "2011-09-21T00:00:00+00:00"
},
{
+ "alias": "os-cell-capacities",
+ "description": "Adding functionality to get cell capacities.",
+ "links": [],
+ "name": "CellCapacities",
+ "namespace": "http://docs.openstack.org/compute/ext/cell_capacities/api/v1.1",
+ "updated": "2013-05-27T00:00:00+00:00"
+ },
+ {
"alias": "os-certificates",
"description": "Certificates support.",
"links": [],
@@ -409,6 +425,14 @@
"updated": "2012-03-12T00:00:00+00:00"
},
{
+ "alias": "os-extended-quotas",
+ "description": "Adds ability for admins to delete quota",
+ "links": [],
+ "name": "ExtendedQuotas",
+ "namespace": "http://docs.openstack.org/compute/ext/quota-delete/api/v1.1",
+ "updated": "2013-05-23T00:00:00+00:00"
+ },
+ {
"alias": "os-quota-sets",
"description": "Quotas management support.",
"links": [],
@@ -473,6 +497,14 @@
"updated": "2012-10-28T00:00:00-00:00"
},
{
+ "alias": "os-extended-services",
+ "description": "Extended services support.",
+ "links": [],
+ "name": "ExtendedServices",
+ "namespace": "http://docs.openstack.org/compute/ext/extended_services/api/v2",
+ "updated": "2013-05-17T00:00:00-00:00"
+ },
+ {
"alias": "os-simple-tenant-usage",
"description": "Simple tenant usage extension.",
"links": [],
@@ -497,6 +529,14 @@
"updated": "2012-07-13T00:00:00+00:00"
},
{
+ "alias": "os-used-limits-for-admin",
+ "description": "Provide data to admin on limited resources used by other tenants.",
+ "links": [],
+ "name": "UsedLimitsForAdmin",
+ "namespace": "http://docs.openstack.org/compute/ext/used_limits_for_admin/api/v1.1",
+ "updated": "2013-05-02T00:00:00+00:00"
+ },
+ {
"alias": "os-user-data",
"description": "Add user_data to the Create Server v1.1 API.",
"links": [],
diff --git a/doc/api_samples/all_extensions/extensions-get-resp.xml b/doc/api_samples/all_extensions/extensions-get-resp.xml
index f6213a3a9..1c6a9a58b 100644
--- a/doc/api_samples/all_extensions/extensions-get-resp.xml
+++ b/doc/api_samples/all_extensions/extensions-get-resp.xml
@@ -33,6 +33,9 @@
<extension alias="OS-FLV-EXT-DATA" updated="2011-09-14T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" name="FlavorExtraData">
<description>Provide additional data for flavors.</description>
</extension>
+ <extension alias="OS-SRV-USG" updated="2013-04-29T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" name="ServerUsage">
+ <description>Adds launched_at and terminated_at on Servers.</description>
+ </extension>
<extension alias="OS-SCH-HNT" updated="2011-07-19T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/scheduler-hints/api/v2" name="SchedulerHints">
<description>Pass arbitrary key/value pairs to the scheduler.</description>
</extension>
@@ -65,6 +68,9 @@
listing neighbor cells, and getting the capabilities of the local cell.
</description>
</extension>
+ <extension alias="os-cell-capacities" updated="2013-05-27T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/cell_capacities/api/v1.1" name="CellCapacities">
+ <description>Adds functionality to get cell capacities.</description>
+ </extension>
<extension alias="os-certificates" updated="2012-01-19T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/certificates/api/v1.1" name="Certificates">
<description>Certificates support.</description>
</extension>
@@ -171,6 +177,9 @@
<extension alias="os-quota-class-sets" updated="2012-03-12T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/quota-classes-sets/api/v1.1" name="QuotaClasses">
<description>Quota classes management support.</description>
</extension>
+ <extension alias="os-extended-quotas" updated="2013-05-23T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/quota-delete/api/v1.1" name="ExtendedQuotas">
+ <description>Adds ability for admins to delete quota.</description>
+ </extension>
<extension alias="os-quota-sets" updated="2011-08-08T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/quotas-sets/api/v1.1" name="Quotas">
<description>Quotas management support.</description>
</extension>
@@ -195,6 +204,9 @@
<extension alias="os-services" updated="2012-10-28T00:00:00-00:00" namespace="http://docs.openstack.org/compute/ext/services/api/v2" name="Services">
<description>Services support.</description>
</extension>
+ <extension alias="os-extended-services" updated="2013-05-17T00:00:00-00:00" namespace="http://docs.openstack.org/compute/ext/extended_services/api/v2" name="ExtendedServices">
+ <description>Extended services support.</description>
+ </extension>
<extension alias="os-simple-tenant-usage" updated="2011-08-19T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/os-simple-tenant-usage/api/v1.1" name="SimpleTenantUsage">
<description>Simple tenant usage extension.</description>
</extension>
@@ -204,6 +216,9 @@
<extension alias="os-used-limits" updated="2012-07-13T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/used_limits/api/v1.1" name="UsedLimits">
<description>Provide data on limited resources that are being used.</description>
</extension>
+ <extension alias="os-used-limits-for-admin" updated="2013-05-02T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/used_limits_for_admin/api/v1.1" name="UsedLimitsForAdmin">
+ <description>Provide data to admin on limited resources used by other tenants.</description>
+ </extension>
<extension alias="os-user-data" updated="2012-08-07T00:00:00+00:00" namespace="http://docs.openstack.org/compute/ext/userdata/api/v1.1" name="UserData">
<description>Add user_data to the Create Server v1.1 API.</description>
</extension>
diff --git a/doc/api_samples/all_extensions/server-get-resp.json b/doc/api_samples/all_extensions/server-get-resp.json
index 67a33cab1..d5b995027 100644
--- a/doc/api_samples/all_extensions/server-get-resp.json
+++ b/doc/api_samples/all_extensions/server-get-resp.json
@@ -2,26 +2,28 @@
"server": {
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "nova",
- "OS-EXT-SRV-ATTR:host": "b00875071c774b5487d217b82f03dfa2",
+ "OS-EXT-SRV-ATTR:host": "1e6e2aca70404eddb6120b83ba0ba990",
"OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini",
"OS-EXT-SRV-ATTR:instance_name": "instance-00000001",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
+ "OS-SRV-USG:launched_at": "2013-05-02T19:13:48.734609",
+ "OS-SRV-USG:terminated_at": null,
"accessIPv4": "",
"accessIPv6": "",
"addresses": {
"private": [
{
+ "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.0.3",
- "version": 4,
- "OS-EXT-IPS-MAC:mac_addr": "00:0c:29:e1:42:90"
+ "version": 4
}
]
},
"config_drive": "",
- "created": "2013-02-07T18:58:56Z",
+ "created": "2013-05-02T19:13:48Z",
"flavor": {
"id": "1",
"links": [
@@ -31,8 +33,8 @@
}
]
},
- "hostId": "ecbf72ad08d0d4f26768f526d17c2813812b4bc1598f081e16eb9b8b",
- "id": "12c05fea-29ec-4f77-9025-b3d72584ef1d",
+ "hostId": "2e41621ca04684ffb8b3616c554bcfa402856e1678aaf9473bfced1a",
+ "id": "a594696d-f35a-4238-a152-ae471395bdfe",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
@@ -45,11 +47,11 @@
"key_name": null,
"links": [
{
- "href": "http://openstack.example.com/v2/openstack/servers/12c05fea-29ec-4f77-9025-b3d72584ef1d",
+ "href": "http://openstack.example.com/v2/openstack/servers/a594696d-f35a-4238-a152-ae471395bdfe",
"rel": "self"
},
{
- "href": "http://openstack.example.com/openstack/servers/12c05fea-29ec-4f77-9025-b3d72584ef1d",
+ "href": "http://openstack.example.com/openstack/servers/a594696d-f35a-4238-a152-ae471395bdfe",
"rel": "bookmark"
}
],
@@ -65,7 +67,7 @@
],
"status": "ACTIVE",
"tenant_id": "openstack",
- "updated": "2013-02-07T18:58:57Z",
+ "updated": "2013-05-02T19:13:48Z",
"user_id": "fake"
}
-}
+} \ No newline at end of file
diff --git a/doc/api_samples/all_extensions/server-get-resp.xml b/doc/api_samples/all_extensions/server-get-resp.xml
index 6db40414b..42f62cfeb 100644
--- a/doc/api_samples/all_extensions/server-get-resp.xml
+++ b/doc/api_samples/all_extensions/server-get-resp.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<server xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="2013-02-07T19:01:59Z" hostId="06d1cfd52be5f5d197193db2842978235fd085bd2dfaea32e5068468" name="new-server-test" created="2013-02-07T19:01:58Z" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="6be39927-53b2-4aee-8593-1c72b3673168" key_name="None" config_drive="" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="b98603db318e495e819601702d16c512" OS-EXT-SRV-ATTR:hypervisor_hostname="fake-mini" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO">
+<server xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="2013-05-02T19:13:53Z" hostId="02da39e5db251d57b0ab8e8a2f902617a4800891ae726af602678299" name="new-server-test" created="2013-05-02T19:13:53Z" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="f51be755-f78e-4899-b4b9-d8ab979a1589" key_name="None" config_drive="" OS-SRV-USG:terminated_at="None" OS-SRV-USG:launched_at="2013-05-02 19:13:53.859580" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="7729a44884d94767a2d239da3d5b4a8a" OS-EXT-SRV-ATTR:hypervisor_hostname="fake-mini" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO">
<image id="70a599e0-31e7-49b7-b260-868f441e862b">
<atom:link href="http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b" rel="bookmark"/>
</image>
@@ -11,13 +11,12 @@
</metadata>
<addresses>
<network id="private">
- <ip OS-EXT-IPS:type="fixed" version="4" addr="192.168.0.3"
- OS-EXT-IPS-MAC:mac_addr="00:0c:29:e1:42:90"/>
+ <ip OS-EXT-IPS:type="fixed" version="4" addr="192.168.0.3" OS-EXT-IPS-MAC:mac_addr="aa:bb:cc:dd:ee:ff"/>
</network>
</addresses>
- <atom:link href="http://openstack.example.com/v2/openstack/servers/6be39927-53b2-4aee-8593-1c72b3673168" rel="self"/>
- <atom:link href="http://openstack.example.com/openstack/servers/6be39927-53b2-4aee-8593-1c72b3673168" rel="bookmark"/>
+ <atom:link href="http://openstack.example.com/v2/openstack/servers/f51be755-f78e-4899-b4b9-d8ab979a1589" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/servers/f51be755-f78e-4899-b4b9-d8ab979a1589" rel="bookmark"/>
<security_groups>
<security_group name="default"/>
</security_groups>
-</server>
+</server> \ No newline at end of file
diff --git a/doc/api_samples/all_extensions/servers-details-resp.json b/doc/api_samples/all_extensions/servers-details-resp.json
index 05f11a246..038df104e 100644
--- a/doc/api_samples/all_extensions/servers-details-resp.json
+++ b/doc/api_samples/all_extensions/servers-details-resp.json
@@ -3,26 +3,28 @@
{
"OS-DCF:diskConfig": "AUTO",
"OS-EXT-AZ:availability_zone": "nova",
- "OS-EXT-SRV-ATTR:host": "33924d68ef4e4214bb9bc200178d23b8",
+ "OS-EXT-SRV-ATTR:host": "f43a596b8ec841e4bd486473ba0693bb",
"OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini",
"OS-EXT-SRV-ATTR:instance_name": "instance-00000001",
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
+ "OS-SRV-USG:launched_at": "2013-05-02T19:14:01.806067",
+ "OS-SRV-USG:terminated_at": null,
"accessIPv4": "",
"accessIPv6": "",
"addresses": {
"private": [
{
+ "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.0.3",
- "version": 4,
- "OS-EXT-IPS-MAC:mac_addr": "00:0c:29:e1:42:90"
+ "version": 4
}
]
},
"config_drive": "",
- "created": "2013-02-07T18:58:56Z",
+ "created": "2013-05-02T19:14:01Z",
"flavor": {
"id": "1",
"links": [
@@ -32,8 +34,8 @@
}
]
},
- "hostId": "e0028a678cb7760fe5987947ab495dbb0f79c1071850f87a9aa8227f",
- "id": "3ec52036-bfee-4869-9c4c-81a579d72196",
+ "hostId": "6a892e9c0d3105ce7c93fd44982253a16d6bd760fc80cb686cfe1c18",
+ "id": "cdd530d5-140d-4f16-88a6-690cbbabc186",
"image": {
"id": "70a599e0-31e7-49b7-b260-868f441e862b",
"links": [
@@ -46,11 +48,11 @@
"key_name": null,
"links": [
{
- "href": "http://openstack.example.com/v2/openstack/servers/3ec52036-bfee-4869-9c4c-81a579d72196",
+ "href": "http://openstack.example.com/v2/openstack/servers/cdd530d5-140d-4f16-88a6-690cbbabc186",
"rel": "self"
},
{
- "href": "http://openstack.example.com/openstack/servers/3ec52036-bfee-4869-9c4c-81a579d72196",
+ "href": "http://openstack.example.com/openstack/servers/cdd530d5-140d-4f16-88a6-690cbbabc186",
"rel": "bookmark"
}
],
@@ -66,8 +68,8 @@
],
"status": "ACTIVE",
"tenant_id": "openstack",
- "updated": "2013-02-07T18:58:57Z",
+ "updated": "2013-05-02T19:14:01Z",
"user_id": "fake"
}
]
-}
+} \ No newline at end of file
diff --git a/doc/api_samples/all_extensions/servers-details-resp.xml b/doc/api_samples/all_extensions/servers-details-resp.xml
index 8061caf21..45a96d349 100644
--- a/doc/api_samples/all_extensions/servers-details-resp.xml
+++ b/doc/api_samples/all_extensions/servers-details-resp.xml
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
-<servers xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <server status="ACTIVE" updated="2013-02-07T19:01:59Z" hostId="641edaad8dd6a670afec58a4ce7e908d50379a6060f845236cd063db" name="new-server-test" created="2013-02-07T19:01:58Z" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="b45edf9d-30f6-41e8-a00b-ef8962376586" key_name="None" config_drive="" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="f7954cfa4a5544278876b1d9224efe48" OS-EXT-SRV-ATTR:hypervisor_hostname="fake-mini" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO">
+<servers xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <server status="ACTIVE" updated="2013-05-02T19:13:58Z" hostId="13233ec6d4eb3659bff165e8db9605421526bb461766ca658f343e50" name="new-server-test" created="2013-05-02T19:13:58Z" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="99e9e5b5-5a27-4181-88d4-ade79f132103" key_name="None" config_drive="" OS-SRV-USG:terminated_at="None" OS-SRV-USG:launched_at="2013-05-02 19:13:58.791386" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="a7b375c2d6fa4fd2a4c2b7eee5154f1e" OS-EXT-SRV-ATTR:hypervisor_hostname="fake-mini" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO">
<image id="70a599e0-31e7-49b7-b260-868f441e862b">
<atom:link href="http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b" rel="bookmark"/>
</image>
@@ -12,13 +12,13 @@
</metadata>
<addresses>
<network id="private">
- <ip OS-EXT-IPS:type="fixed" version="4" addr="192.168.0.3" OS-EXT-IPS-MAC:mac_addr="00:0c:29:e1:42:90"/>
+ <ip OS-EXT-IPS:type="fixed" version="4" addr="192.168.0.3" OS-EXT-IPS-MAC:mac_addr="aa:bb:cc:dd:ee:ff"/>
</network>
</addresses>
- <atom:link href="http://openstack.example.com/v2/openstack/servers/b45edf9d-30f6-41e8-a00b-ef8962376586" rel="self"/>
- <atom:link href="http://openstack.example.com/openstack/servers/b45edf9d-30f6-41e8-a00b-ef8962376586" rel="bookmark"/>
+ <atom:link href="http://openstack.example.com/v2/openstack/servers/99e9e5b5-5a27-4181-88d4-ade79f132103" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/servers/99e9e5b5-5a27-4181-88d4-ade79f132103" rel="bookmark"/>
<security_groups>
<security_group name="default"/>
</security_groups>
</server>
-</servers>
+</servers> \ No newline at end of file
diff --git a/doc/api_samples/os-cell-capacities/cells-capacities-resp.json b/doc/api_samples/os-cell-capacities/cells-capacities-resp.json
new file mode 100644
index 000000000..b926f8d1d
--- /dev/null
+++ b/doc/api_samples/os-cell-capacities/cells-capacities-resp.json
@@ -0,0 +1,18 @@
+{
+ "cell": {
+ "capacities": {
+ "ram_free": {
+ "units_by_mb": {
+ "8192": 0, "512": 13, "4096": 1, "2048": 3, "16384": 0
+ },
+ "total_mb": 7680
+ },
+ "disk_free": {
+ "units_by_mb": {
+ "81920": 11, "20480": 46, "40960": 23, "163840": 5, "0": 0
+ },
+ "total_mb": 1052672
+ }
+ }
+ }
+}
diff --git a/doc/api_samples/os-cell-capacities/cells-capacities-resp.xml b/doc/api_samples/os-cell-capacities/cells-capacities-resp.xml
new file mode 100644
index 000000000..63672b00b
--- /dev/null
+++ b/doc/api_samples/os-cell-capacities/cells-capacities-resp.xml
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<cell xmlns="http://docs.rackspacecloud.com/servers/api/v1.0">
+ <capacities>
+ <ram_free total_mb="7680">
+ <unit_by_mb unit="0" mb="8192"/>
+ <unit_by_mb unit="13" mb="512"/>
+ <unit_by_mb unit="1" mb="4096"/>
+ <unit_by_mb unit="3" mb="2048"/>
+ <unit_by_mb unit="0" mb="16384"/>
+ </ram_free>
+ <disk_free total_mb="1052672">
+ <unit_by_mb unit="11" mb="81920"/>
+ <unit_by_mb unit="46" mb="20480"/>
+ <unit_by_mb unit="23" mb="40960"/>
+ <unit_by_mb unit="5" mb="163840"/>
+ <unit_by_mb unit="0" mb="0"/>
+ </disk_free>
+ </capacities>
+</cell>
diff --git a/doc/api_samples/os-services/service-disable-log-put-req.json b/doc/api_samples/os-services/service-disable-log-put-req.json
new file mode 100644
index 000000000..6ccc5524e
--- /dev/null
+++ b/doc/api_samples/os-services/service-disable-log-put-req.json
@@ -0,0 +1,5 @@
+{
+ "host": "host1",
+ "binary": "nova-compute",
+ "disabled_reason": "test2"
+}
diff --git a/doc/api_samples/os-services/service-disable-log-put-req.xml b/doc/api_samples/os-services/service-disable-log-put-req.xml
new file mode 100644
index 000000000..f8eec8173
--- /dev/null
+++ b/doc/api_samples/os-services/service-disable-log-put-req.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<service host="host1" binary="nova-compute" disabled_reason="test2"/>
diff --git a/doc/api_samples/os-services/service-disable-log-put-resp.json b/doc/api_samples/os-services/service-disable-log-put-resp.json
new file mode 100644
index 000000000..c82bc54c3
--- /dev/null
+++ b/doc/api_samples/os-services/service-disable-log-put-resp.json
@@ -0,0 +1,8 @@
+{
+ "service": {
+ "binary": "nova-compute",
+ "host": "host1",
+ "disabled_reason": "test2",
+ "status": "disabled"
+ }
+}
diff --git a/doc/api_samples/os-services/service-disable-log-put-resp.xml b/doc/api_samples/os-services/service-disable-log-put-resp.xml
new file mode 100644
index 000000000..1ddf273b1
--- /dev/null
+++ b/doc/api_samples/os-services/service-disable-log-put-resp.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<service host="host1" binary="nova-compute" status="disabled" disabled_reason="test2" />
diff --git a/doc/api_samples/os-services/service-enable-put-req.json b/doc/api_samples/os-services/service-enable-put-req.json
index ffe896999..f96d34536 100644
--- a/doc/api_samples/os-services/service-enable-put-req.json
+++ b/doc/api_samples/os-services/service-enable-put-req.json
@@ -1,4 +1,4 @@
{
"host": "host1",
- "service": "nova-compute"
+ "binary": "nova-compute"
}
diff --git a/doc/api_samples/os-services/services-get-resp.json b/doc/api_samples/os-services/services-get-resp.json
new file mode 100644
index 000000000..4c873d636
--- /dev/null
+++ b/doc/api_samples/os-services/services-get-resp.json
@@ -0,0 +1,40 @@
+{
+ "services": [
+ {
+ "binary": "nova-scheduler",
+ "host": "host1",
+ "state": "up",
+ "status": "disabled",
+ "updated_at": "2012-10-29T13:42:02.000000",
+ "zone": "internal",
+ "disabled_reason": "test1"
+ },
+ {
+ "binary": "nova-compute",
+ "host": "host1",
+ "state": "up",
+ "status": "disabled",
+ "updated_at": "2012-10-29T13:42:05.000000",
+ "zone": "nova",
+ "disabled_reason": "test2"
+ },
+ {
+ "binary": "nova-scheduler",
+ "host": "host2",
+ "state": "down",
+ "status": "enabled",
+ "updated_at": "2012-09-19T06:55:34.000000",
+ "zone": "internal",
+ "disabled_reason": ""
+ },
+ {
+ "binary": "nova-compute",
+ "host": "host2",
+ "state": "down",
+ "status": "disabled",
+ "updated_at": "2012-09-18T08:03:38.000000",
+ "zone": "nova",
+ "disabled_reason": "test4"
+ }
+ ]
+}
diff --git a/doc/api_samples/os-services/services-get-resp.xml b/doc/api_samples/os-services/services-get-resp.xml
new file mode 100644
index 000000000..997fc3945
--- /dev/null
+++ b/doc/api_samples/os-services/services-get-resp.xml
@@ -0,0 +1,6 @@
+<services>
+ <service status="disabled" binary="nova-scheduler" zone="internal" state="up" host="host1" updated_at="2012-10-29T13:42:02.000000" disabled_reason="test1"/>
+ <service status="disabled" binary="nova-compute" zone="nova" state="up" host="host1" updated_at="2012-10-29T13:42:05.000000" disabled_reason="test2"/>
+ <service status="enabled" binary="nova-scheduler" zone="internal" state="down" host="host2" updated_at="2012-09-19T06:55:34.000000" disabled_reason=""/>
+ <service status="disabled" binary="nova-compute" zone="nova" state="down" host="host2" updated_at="2012-09-18T08:03:38.000000" disabled_reason="test4"/>
+</services>
diff --git a/doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json b/doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json
new file mode 100644
index 000000000..c5593b7e7
--- /dev/null
+++ b/doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json
@@ -0,0 +1,90 @@
+{
+ "limits": {
+ "absolute": {
+ "maxImageMeta": 128,
+ "maxPersonality": 5,
+ "maxPersonalitySize": 10240,
+ "maxSecurityGroupRules": 20,
+ "maxSecurityGroups": 10,
+ "maxServerMeta": 128,
+ "maxTotalCores": 20,
+ "maxTotalFloatingIps": 10,
+ "maxTotalInstances": 10,
+ "maxTotalKeypairs": 100,
+ "maxTotalRAMSize": 51200,
+ "totalCoresUsed": 0,
+ "totalInstancesUsed": 0,
+ "totalRAMUsed": 0,
+ "totalSecurityGroupsUsed": 0,
+ "totalFloatingIpsUsed": 0
+ },
+ "rate": [
+ {
+ "limit": [
+ {
+ "next-available": "2012-11-27T17:24:52Z",
+ "remaining": 10,
+ "unit": "MINUTE",
+ "value": 10,
+ "verb": "POST"
+ },
+ {
+ "next-available": "2012-11-27T17:24:52Z",
+ "remaining": 10,
+ "unit": "MINUTE",
+ "value": 10,
+ "verb": "PUT"
+ },
+ {
+ "next-available": "2012-11-27T17:24:52Z",
+ "remaining": 100,
+ "unit": "MINUTE",
+ "value": 100,
+ "verb": "DELETE"
+ }
+ ],
+ "regex": ".*",
+ "uri": "*"
+ },
+ {
+ "limit": [
+ {
+ "next-available": "2012-11-27T17:24:52Z",
+ "remaining": 50,
+ "unit": "DAY",
+ "value": 50,
+ "verb": "POST"
+ }
+ ],
+ "regex": "^/servers",
+ "uri": "*/servers"
+ },
+ {
+ "limit": [
+ {
+ "next-available": "2012-11-27T17:24:52Z",
+ "remaining": 3,
+ "unit": "MINUTE",
+ "value": 3,
+ "verb": "GET"
+ }
+ ],
+ "regex": ".*changes-since.*",
+ "uri": "*changes-since*"
+ },
+ {
+ "limit": [
+ {
+ "next-available": "2012-11-27T17:24:52Z",
+ "remaining": 12,
+ "unit": "HOUR",
+ "value": 12,
+ "verb": "GET"
+ }
+ ],
+ "regex": "^/os-fping",
+ "uri": "*/os-fping"
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml b/doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml
new file mode 100644
index 000000000..c2b0572e5
--- /dev/null
+++ b/doc/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<limits xmlns:os-used-limits="http://docs.openstack.org/compute/ext/used_limits/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/common/api/v1.0">
+ <rates>
+ <rate regex=".*" uri="*">
+ <limit next-available="2012-11-27T17:24:53Z" unit="MINUTE" verb="POST" remaining="10" value="10"/>
+ <limit next-available="2012-11-27T17:24:53Z" unit="MINUTE" verb="PUT" remaining="10" value="10"/>
+ <limit next-available="2012-11-27T17:24:53Z" unit="MINUTE" verb="DELETE" remaining="100" value="100"/>
+ </rate>
+ <rate regex="^/servers" uri="*/servers">
+ <limit next-available="2012-11-27T17:24:53Z" unit="DAY" verb="POST" remaining="50" value="50"/>
+ </rate>
+ <rate regex=".*changes-since.*" uri="*changes-since*">
+ <limit next-available="2012-11-27T17:24:53Z" unit="MINUTE" verb="GET" remaining="3" value="3"/>
+ </rate>
+ <rate regex="^/os-fping" uri="*/os-fping">
+ <limit next-available="2012-11-27T17:24:53Z" unit="HOUR" verb="GET" remaining="12" value="12"/>
+ </rate>
+ </rates>
+ <absolute>
+ <limit name="maxServerMeta" value="128"/>
+ <limit name="maxPersonality" value="5"/>
+ <limit name="maxImageMeta" value="128"/>
+ <limit name="maxPersonalitySize" value="10240"/>
+ <limit name="maxSecurityGroupRules" value="20"/>
+ <limit name="maxTotalKeypairs" value="100"/>
+ <limit name="totalRAMUsed" value="0"/>
+ <limit name="totalInstancesUsed" value="0"/>
+ <limit name="maxSecurityGroups" value="10"/>
+ <limit name="totalFloatingIpsUsed" value="0"/>
+ <limit name="maxTotalCores" value="20"/>
+ <limit name="totalSecurityGroupsUsed" value="0"/>
+ <limit name="maxTotalFloatingIps" value="10"/>
+ <limit name="maxTotalInstances" value="10"/>
+ <limit name="totalCoresUsed" value="0"/>
+ <limit name="maxTotalRAMSize" value="51200"/>
+ </absolute>
+</limits> \ No newline at end of file
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 4fa13e045..5e7dac52d 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -250,7 +250,7 @@ htmlhelp_basename = 'novadoc'
# [howto/manual]).
latex_documents = [
('index', 'Nova.tex', u'Nova Documentation',
- u'Anso Labs, LLC', 'manual'),
+ u'OpenStack Foundation', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
diff --git a/doc/source/devref/compute.rst b/doc/source/devref/compute.rst
index 50397cbec..00da777e8 100644
--- a/doc/source/devref/compute.rst
+++ b/doc/source/devref/compute.rst
@@ -64,10 +64,10 @@ The :mod:`nova.virt.images` Module
:show-inheritance:
-The :mod:`nova.compute.instance_types` Module
+The :mod:`nova.compute.flavors` Module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.. automodule:: nova.compute.instance_types
+.. automodule:: nova.compute.flavors
:noindex:
:members:
:undoc-members:
diff --git a/doc/source/devref/development.environment.rst b/doc/source/devref/development.environment.rst
index 8c6e03323..79c368d3a 100644
--- a/doc/source/devref/development.environment.rst
+++ b/doc/source/devref/development.environment.rst
@@ -123,7 +123,7 @@ You can manually install the virtual environment instead of having
python tools/install_venv.py
This will install all of the Python packages listed in the
-``tools/pip-requires`` file into your virtualenv. There will also be some
+``requirements.txt`` file into your virtualenv. There will also be some
additional packages (pip, distribute, greenlet) that are installed
by the ``tools/install_venv.py`` file into the virutalenv.
diff --git a/doc/source/devref/unit_tests.rst b/doc/source/devref/unit_tests.rst
index 8033406f0..b6549bd00 100644
--- a/doc/source/devref/unit_tests.rst
+++ b/doc/source/devref/unit_tests.rst
@@ -100,7 +100,7 @@ If you wish to recreate the virtualenv, call ``run_tests.sh`` with the flag::
-f, --force
Recreating the virtualenv is useful if the package dependencies have changed
-since the virtualenv was last created. If the ``tools/pip-requires`` or
+since the virtualenv was last created. If the ``requirements.txt`` or
``tools/install_venv.py`` files have changed, it's a good idea to recreate the
virtualenv.
diff --git a/doc/source/index.rst b/doc/source/index.rst
index c8befb415..077fc2920 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -53,11 +53,6 @@ API Extensions
Go to http://api.openstack.org for information about Compute API extensions.
-Outstanding Documentation Tasks
-===============================
-
-.. todolist::
-
Indices and tables
==================
diff --git a/etc/nova/nova.conf.sample b/etc/nova/nova.conf.sample
index 2ba888a86..7524a7e5e 100644
--- a/etc/nova/nova.conf.sample
+++ b/etc/nova/nova.conf.sample
@@ -52,15 +52,6 @@
#
-# Options defined in nova.manager
-#
-
-# Some periodic tasks can be run in a separate process. Should
-# we run them here? (boolean value)
-#run_external_periodic_tasks=true
-
-
-#
# Options defined in nova.netconf
#
@@ -82,6 +73,13 @@
#
# If set, send compute.instance.update notifications on
+# instance state changes. Valid values are None for no
+# notifications, "vm_state" for notifications on VM state
+# changes, or "vm_and_task_state" for notifications on VM and
+# task state changes. (string value)
+#notify_on_state_change=<None>
+
+# If set, send compute.instance.update notifications on
# instance state changes. Valid values are False for no
# notifications, True for notifications on any instance
# changes. (boolean value)
@@ -91,13 +89,6 @@
# the API service. (boolean value)
#notify_api_faults=false
-# If set, send compute.instance.update notifications on
-# instance state changes. Valid values are None for no
-# notifications, "vm_state" for notifications on VM state
-# changes, or "vm_and_task_state" for notifications on VM and
-# task state changes. (string value)
-#notify_on_state_change=<None>
-
#
# Options defined in nova.paths
@@ -143,6 +134,10 @@
# number of floating ips allowed per project (integer value)
#quota_floating_ips=10
+# number of fixed ips allowed per project (this should be at
+# least the number of instances allowed) (integer value)
+#quota_fixed_ips=-1
+
# number of metadata items allowed per instance (integer
# value)
#quota_metadata_items=128
@@ -276,9 +271,6 @@
# Length of generated instance admin passwords (integer value)
#password_length=12
-# Whether to disable inter-process locks (boolean value)
-#disable_process_locking=false
-
# time period to generate instance usages for. Time period
# must be hour, day, month or year (string value)
#instance_usage_audit_period=month
@@ -541,19 +533,73 @@
#
-# Options defined in nova.common.memorycache
+# Options defined in nova.cmd.clear_rabbit_queues
#
-# Memcached servers or None for in process cache. (list value)
-#memcached_servers=<None>
+# Queues to delete (multi valued)
+#queues=
+
+# delete nova exchange too. (boolean value)
+#delete_exchange=false
#
-# Options defined in nova.compute
+# Options defined in nova.cmd.novnc
+#
+
+# Record sessions to FILE.[session_number] (boolean value)
+#record=false
+
+# Become a daemon (background process) (boolean value)
+#daemon=false
+
+# Disallow non-encrypted connections (boolean value)
+#ssl_only=false
+
+# Source is ipv6 (boolean value)
+#source_is_ipv6=false
+
+# SSL certificate file (string value)
+#cert=self.pem
+
+# SSL key file (if separate from cert) (string value)
+#key=<None>
+
+# Run webserver on same port. Serve files from DIR. (string
+# value)
+#web=/usr/share/spice-html5
+
+
+#
+# Options defined in nova.cmd.novncproxy
+#
+
+# Host on which to listen for incoming requests (string value)
+#novncproxy_host=0.0.0.0
+
+# Port on which to listen for incoming requests (integer
+# value)
+#novncproxy_port=6080
+
+
+#
+# Options defined in nova.cmd.spicehtml5proxy
#
-# The full class name of the compute API class to use (string
+# Host on which to listen for incoming requests (string value)
+#spicehtml5proxy_host=0.0.0.0
+
+# Port on which to listen for incoming requests (integer
# value)
+#spicehtml5proxy_port=6082
+
+
+#
+# Options defined in nova.compute
+#
+
+# The full class name of the compute API class to use
+# (deprecated) (string value)
#compute_api_class=nova.compute.api.API
@@ -565,6 +611,10 @@
# when testing in single-host environments. (boolean value)
#allow_resize_to_same_host=false
+# Allow migrate machine to the same host. Useful when testing
+# in single-host environments. (boolean value)
+#allow_migrate_to_same_host=false
+
# availability zone to use when user doesn't specify one
# (string value)
#default_schedule_zone=<None>
@@ -588,7 +638,7 @@
#
-# Options defined in nova.compute.instance_types
+# Options defined in nova.compute.flavors
#
# default instance type to use, testing only (string value)
@@ -630,6 +680,10 @@
# interval to pull bandwidth usage info (integer value)
#bandwidth_poll_interval=600
+# interval to sync power states between the database and the
+# hypervisor (integer value)
+#sync_power_state_interval=600
+
# Number of seconds between instance info_cache self healing
# updates (integer value)
#heal_instance_info_cache_interval=60
@@ -1046,6 +1100,10 @@
# be on the bottom. (string value)
#iptables_bottom_regex=
+# The table that iptables to jump to when a packet is to be
+# dropped. (string value)
+#iptables_drop_action=DROP
+
#
# Options defined in nova.network.manager
@@ -1083,7 +1141,9 @@
# Number of addresses in each private subnet (integer value)
#network_size=256
-# Fixed IP address block (string value)
+# DEPRECATED - Fixed IP address block.If set to an empty
+# string, the subnet range(s) will be automatically determined
+# and configured. (string value)
#fixed_range=10.0.0.0/8
# Fixed IPv6 address block (string value)
@@ -1210,50 +1270,6 @@
# The full class name of the security API class (string value)
#security_group_api=nova
-#
-# Options defined in bin.nova-clear-rabbit-queues
-#
-
-# Queues to delete (multi valued)
-#queues=
-
-# delete nova exchange too. (boolean value)
-#delete_exchange=false
-
-
-#
-# Options defined in bin.nova-novncproxy
-#
-
-# Record sessions to FILE.[session_number] (boolean value)
-#record=false
-
-# Become a daemon (background process) (boolean value)
-#daemon=false
-
-# Disallow non-encrypted connections (boolean value)
-#ssl_only=false
-
-# Source is ipv6 (boolean value)
-#source_is_ipv6=false
-
-# SSL certificate file (string value)
-#cert=self.pem
-
-# SSL key file (if separate from cert) (string value)
-#key=<None>
-
-# Run webserver on same port. Serve files from DIR. (string
-# value)
-#web=/usr/share/novnc
-
-# Host on which to listen for incoming requests (string value)
-#novncproxy_host=0.0.0.0
-
-# Port on which to listen for incoming requests (integer
-# value)
-#novncproxy_port=6080
-
#
# Options defined in nova.objectstore.s3server
@@ -1287,7 +1303,7 @@
# The SQLAlchemy connection string used to connect to the
# database (string value)
-#sql_connection=sqlite:////nova/openstack/common/db/$sqlite_db
+#sql_connection=sqlite:////common/db/$sqlite_db
# the filename to use with sqlite (string value)
#sqlite_db=nova.sqlite
@@ -1363,13 +1379,9 @@
# Log output to standard error (boolean value)
#use_stderr=true
-# Default file mode used when creating log files (string
-# value)
-#logfile_mode=0644
-
# format string to use for log messages with context (string
# value)
-#logging_context_format_string=%(asctime)s.%(msecs)03d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s
+#logging_context_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s
# format string to use for log messages without context
# (string value)
@@ -1408,20 +1420,22 @@
#log_config=<None>
# A logging.Formatter log message format string which may use
-# any of the available logging.LogRecord attributes. Default:
-# %(default)s (string value)
-#log_format=%(asctime)s %(levelname)8s [%(name)s] %(message)s
+# any of the available logging.LogRecord attributes. This
+# option is deprecated. Please use
+# logging_context_format_string and
+# logging_default_format_string instead. (string value)
+#log_format=<None>
# Format string for %%(asctime)s in log records. Default:
# %(default)s (string value)
#log_date_format=%Y-%m-%d %H:%M:%S
-# (Optional) Name of log file to output to. If not set,
-# logging will go to stdout. (string value)
+# (Optional) Name of log file to output to. If no default is
+# set, logging will go to stdout. (string value)
#log_file=<None>
-# (Optional) The directory to keep log files in (will be
-# prepended to --log-file) (string value)
+# (Optional) The base directory used for relative --log-file
+# paths (string value)
#log_dir=<None>
# Use syslog for logging. (boolean value)
@@ -1432,6 +1446,14 @@
#
+# Options defined in nova.openstack.common.memorycache
+#
+
+# Memcached servers or None for in process cache. (list value)
+#memcached_servers=<None>
+
+
+#
# Options defined in nova.openstack.common.notifier.api
#
@@ -1457,6 +1479,15 @@
#
+# Options defined in nova.openstack.common.periodic_task
+#
+
+# Some periodic tasks can be run in a separate process. Should
+# we run them here? (boolean value)
+#run_external_periodic_tasks=true
+
+
+#
# Options defined in nova.openstack.common.rpc
#
@@ -1569,7 +1600,7 @@
# Qpid broker hostname (string value)
#qpid_hostname=localhost
-# Qpid broker port (string value)
+# Qpid broker port (integer value)
#qpid_port=5672
# Qpid HA cluster host:port pairs (list value)
@@ -1624,7 +1655,7 @@
# Name of this node. Must be a valid hostname, FQDN, or IP
# address. Must match "host" option, if running Nova. (string
# value)
-#rpc_zmq_host=sorcha
+#rpc_zmq_host=nova
#
@@ -1634,6 +1665,12 @@
# Matchmaker ring file (JSON) (string value)
#matchmaker_ringfile=/etc/nova/matchmaker_ring.json
+# Heartbeat frequency (integer value)
+#matchmaker_heartbeat_freq=300
+
+# Heartbeat time-to-live. (integer value)
+#matchmaker_heartbeat_ttl=600
+
#
# Options defined in nova.scheduler.driver
@@ -1743,17 +1780,6 @@
#
-# Options defined in nova.scheduler.multi
-#
-
-# Driver to use for scheduling compute calls (string value)
-#compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
-
-# Default driver to use for scheduling calls (string value)
-#default_scheduler_driver=nova.scheduler.chance.ChanceScheduler
-
-
-#
# Options defined in nova.scheduler.rpcapi
#
@@ -1771,24 +1797,6 @@
#
-# Options defined in nova.scheduler.weights.least_cost
-#
-
-# Which cost functions the LeastCostScheduler should use (list
-# value)
-#least_cost_functions=<None>
-
-# How much weight to give the noop cost function (floating
-# point value)
-#noop_cost_fn_weight=1.0
-
-# How much weight to give the fill-first cost function. A
-# negative value will reverse behavior: e.g. spread-first
-# (floating point value)
-#compute_fill_first_cost_fn_weight=<None>
-
-
-#
# Options defined in nova.scheduler.weights.ram
#
@@ -1856,7 +1864,8 @@
# Driver to use for controlling virtualization. Options
# include: libvirt.LibvirtDriver, xenapi.XenAPIDriver,
# fake.FakeDriver, baremetal.BareMetalDriver,
-# vmwareapi.VMWareESXDriver (string value)
+# vmwareapi.VMwareESXDriver, vmwareapi.VMwareVCDriver (string
+# value)
#compute_driver=<None>
# The default format an ephemeral_volume will be formatted
@@ -1886,52 +1895,6 @@
#
-# Options defined in nova.virt.hyperv.vif
-#
-
-# External virtual switch Name, if not provided, the first
-# external virtual switch is used (string value)
-#vswitch_name=<None>
-
-
-#
-# Options defined in nova.virt.hyperv.vmops
-#
-
-# Required for live migration among hosts with different CPU
-# features (boolean value)
-#limit_cpu_features=false
-
-# Sets the admin password in the config drive image (boolean
-# value)
-#config_drive_inject_password=false
-
-# qemu-img is used to convert between different image types
-# (string value)
-#qemu_img_cmd=qemu-img.exe
-
-# Attaches the Config Drive image as a cdrom drive instead of
-# a disk drive (boolean value)
-#config_drive_cdrom=false
-
-
-#
-# Options defined in nova.virt.hyperv.volumeops
-#
-
-# The number of times we retry on attaching volume (integer
-# value)
-#hyperv_attaching_volume_retry_count=10
-
-# The seconds to wait between an volume attachment attempt
-# (integer value)
-#hyperv_wait_between_attach_retry=5
-
-# Force volumeutils v1 (boolean value)
-#force_volumeutils_v1=false
-
-
-#
# Options defined in nova.virt.images
#
@@ -2040,6 +2003,10 @@
# ["file=directsync","block=none"] (list value)
#disk_cachemodes=
+# Which pcpus can be used by vcpus of instance e.g:
+# "4-12,^8,15" (string value)
+#vcpu_pin_set=<None>
+
#
# Options defined in nova.virt.libvirt.imagebackend
@@ -2252,7 +2219,8 @@
#
# Optional VIM Service WSDL Location e.g
-# http://<server>/vimService.wsdl
+# http://<server>/vimService.wsdl. Optional over-ride to
+# default location for bug work-arounds (string value)
#vmwareapi_wsdl_loc=<None>
@@ -2278,11 +2246,18 @@
# (string value)
#xenapi_agent_path=usr/sbin/xe-update-networking
-# Disable XenAPI agent. Reduces the amount of time it takes
-# nova to detect that a VM has started, when that VM does not
-# have the agent installed (boolean value)
+# Disables the use of the XenAPI agent in any image regardless
+# of what image properties are present. (boolean value)
#xenapi_disable_agent=false
+# Determines if the xenapi agent should be used when the image
+# used does not contain a hint to declare if the agent is
+# present or not. The hint is a glance property
+# "xenapi_use_agent" that has the value "true" or "false".
+# Note that waiting for the agent when it is not present will
+# significantly increase server boot times. (boolean value)
+#xenapi_use_agent_default=false
+
#
# Options defined in nova.virt.xenapi.driver
@@ -2513,8 +2488,8 @@
# region name of this node (string value)
#os_region_name=<None>
-# Allow for a ca certificates file to be specified for cinder
-# client requests (string value)
+# Location of ca certicates file to use for cinder client
+# requests. (string value)
#cinder_ca_certificates_file=<None>
# Number of cinderclient retries on failed http calls (integer
@@ -2530,7 +2505,7 @@
#cinder_cross_az_attach=true
-[HYPERV]
+[hyperv]
#
# Options defined in nova.virt.hyperv.pathutils
@@ -2544,6 +2519,71 @@
#instances_path_share=
+#
+# Options defined in nova.virt.hyperv.vif
+#
+
+# External virtual switch Name, if not provided, the first
+# external virtual switch is used (string value)
+#vswitch_name=<None>
+
+
+#
+# Options defined in nova.virt.hyperv.vmops
+#
+
+# Required for live migration among hosts with different CPU
+# features (boolean value)
+#limit_cpu_features=false
+
+# Sets the admin password in the config drive image (boolean
+# value)
+#config_drive_inject_password=false
+
+# qemu-img is used to convert between different image types
+# (string value)
+#qemu_img_cmd=qemu-img.exe
+
+# Attaches the Config Drive image as a cdrom drive instead of
+# a disk drive (boolean value)
+#config_drive_cdrom=false
+
+
+#
+# Options defined in nova.virt.hyperv.volumeops
+#
+
+# The number of times to retry to attach a volume (integer
+# value)
+#volume_attach_retry_count=10
+
+# Interval between volume attachment attempts, in seconds
+# (integer value)
+#volume_attach_retry_interval=5
+
+# Force volumeutils v1 (boolean value)
+#force_volumeutils_v1=false
+
+
+[osapi_v3]
+
+#
+# Options defined in nova.api.openstack
+#
+
+# Whether the V3 API is enabled or not (boolean value)
+#enabled=false
+
+# A list of v3 API extensions to never load. Specify the
+# extension aliases here. (list value)
+#extensions_blacklist=
+
+# If the list is not empty then a v3 API extension will only
+# be loaded if it exists in this list. Specify the extension
+# aliases here. (list value)
+#extensions_whitelist=
+
+
[conductor]
#
@@ -2613,6 +2653,13 @@
# value)
#call_timeout=60
+# Percentage of cell capacity to hold in reserve. Affects both
+# memory and disk utilization (floating point value)
+#reserve_percent=10.0
+
+# Type of cell: api or compute (string value)
+#cell_type=<None>
+
#
# Options defined in nova.cells.rpc_driver
@@ -2628,6 +2675,16 @@
# Options defined in nova.cells.scheduler
#
+# Filter classes the cells scheduler should use. An entry of
+# "nova.cells.filters.all_filters"maps to all cells filters
+# included with nova. (list value)
+#scheduler_filter_classes=nova.cells.filters.all_filters
+
+# Weigher classes the cells scheduler should use. An entry of
+# "nova.cells.weights.all_weighers"maps to all cell weighers
+# included with nova. (list value)
+#scheduler_weight_classes=nova.cells.weights.all_weighers
+
# How many retries when no cells are available. (integer
# value)
#scheduler_retries=10
@@ -2646,6 +2703,33 @@
#db_check_interval=60
+#
+# Options defined in nova.cells.weights.mute_child
+#
+
+# Multiplier used to weigh mute children. (The value should
+# be negative.) (floating point value)
+#mute_weight_multiplier=-10.0
+
+# Weight value assigned to mute children. (The value should
+# be positive.) (floating point value)
+#mute_weight_value=1000.0
+
+# Number of seconds after which a lack of capability and
+# capacity updates signals the child cell is to be treated as
+# a mute. (integer value)
+#mute_child_interval=300
+
+
+#
+# Options defined in nova.cells.weights.ram_by_instance_type
+#
+
+# Multiplier used for weighing ram. Negative numbers mean to
+# stack vs spread. (floating point value)
+#ram_weight_multiplier=10.0
+
+
[zookeeper]
#
@@ -2767,15 +2851,42 @@
#
+# Options defined in nova.virt.baremetal.tilera_pdu
+#
+
+# ip address of tilera pdu (string value)
+#tile_pdu_ip=10.0.100.1
+
+# management script for tilera pdu (string value)
+#tile_pdu_mgr=/tftpboot/pdu_mgr
+
+# power status of tilera PDU is OFF (integer value)
+#tile_pdu_off=2
+
+# power status of tilera PDU is ON (integer value)
+#tile_pdu_on=1
+
+# power status of tilera PDU (integer value)
+#tile_pdu_status=9
+
+# wait time in seconds until check the result after tilera
+# power operations (integer value)
+#tile_power_wait=9
+
+
+#
# Options defined in nova.virt.baremetal.virtual_power_driver
#
# ip or name to virtual power host (string value)
#virtual_power_ssh_host=
+# Port to use for ssh to virtual power host (integer value)
+#virtual_power_ssh_port=22
+
# base command to use for virtual power(vbox,virsh) (string
# value)
-#virtual_power_type=vbox
+#virtual_power_type=virsh
# user to execute virtual power commands as (string value)
#virtual_power_host_user=
@@ -2783,6 +2894,9 @@
# password for virtual power host_user (string value)
#virtual_power_host_pass=
+# ssh key for virtual power host_user (string value)
+#virtual_power_host_key=<None>
+
#
# Options defined in nova.virt.baremetal.volume_driver
@@ -2808,6 +2922,22 @@
#topics=notifications
+[matchmaker_redis]
+
+#
+# Options defined in nova.openstack.common.rpc.matchmaker_redis
+#
+
+# Host to locate redis (string value)
+#host=127.0.0.1
+
+# Use this port to connect to redis host. (integer value)
+#port=6379
+
+# Password for Redis server. (optional) (string value)
+#password=<None>
+
+
[trusted_computing]
#
@@ -2872,4 +3002,4 @@
#keymap=en-us
-# Total option count: 584
+# Total option count: 609
diff --git a/etc/nova/policy.json b/etc/nova/policy.json
index 26a227ae2..a9a584237 100644
--- a/etc/nova/policy.json
+++ b/etc/nova/policy.json
@@ -3,6 +3,7 @@
"admin_or_owner": "is_admin:True or project_id:%(project_id)s",
"default": "rule:admin_or_owner",
+ "cells_scheduler_filter:TargetCellFilter": "is_admin:True",
"compute:create": "",
"compute:create:attach_network": "",
@@ -49,6 +50,7 @@
"compute_extension:extended_ips_mac": "",
"compute_extension:extended_vif_net": "",
"compute_extension:fixed_ips": "rule:admin_api",
+ "compute_extension:v3:os-fixed-ips": "rule:admin_api",
"compute_extension:flavor_access": "",
"compute_extension:flavor_disabled": "",
"compute_extension:flavor_rxtx": "",
@@ -74,18 +76,21 @@
"compute_extension:instance_actions:events": "rule:admin_api",
"compute_extension:instance_usage_audit_log": "rule:admin_api",
"compute_extension:keypairs": "",
+ "compute_extension:v3:os-keypairs": "",
"compute_extension:multinic": "",
"compute_extension:networks": "rule:admin_api",
"compute_extension:networks:view": "",
"compute_extension:networks_associate": "rule:admin_api",
"compute_extension:quotas:show": "",
"compute_extension:quotas:update": "rule:admin_api",
+ "compute_extension:quotas:delete": "rule:admin_api",
"compute_extension:quota_classes": "",
"compute_extension:rescue": "",
"compute_extension:security_group_default_rules": "rule:admin_api",
"compute_extension:security_groups": "",
"compute_extension:server_diagnostics": "rule:admin_api",
"compute_extension:server_password": "",
+ "compute_extension:server_usage": "",
"compute_extension:services": "rule:admin_api",
"compute_extension:simple_tenant_usage:show": "rule:admin_or_owner",
"compute_extension:simple_tenant_usage:list": "rule:admin_api",
@@ -100,6 +105,7 @@
"compute_extension:volumetypes": "",
"compute_extension:availability_zone:list": "",
"compute_extension:availability_zone:detail": "rule:admin_api",
+ "compute_extension:used_limits_for_admin": "rule:admin_api",
"volume:create": "",
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py
index dfe015456..12ea5f615 100644
--- a/nova/api/ec2/__init__.py
+++ b/nova/api/ec2/__init__.py
@@ -251,7 +251,7 @@ class EC2KeystoneAuth(wsgi.Middleware):
project_name = result['access']['token']['tenant'].get('name')
roles = [role['name'] for role
in result['access']['user']['roles']]
- except (AttributeError, KeyError), e:
+ except (AttributeError, KeyError) as e:
LOG.exception(_("Keystone failure: %s") % e)
msg = _("Failure communicating with keystone")
return ec2_error(req, request_id, "Unauthorized", msg)
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index da0a52caa..537f74efa 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -1058,8 +1058,9 @@ class CloudController(object):
"""Format InstanceBlockDeviceMappingResponseItemType."""
root_device_type = 'instance-store'
mapping = []
- for bdm in db.block_device_mapping_get_all_by_instance(context,
- instance_uuid):
+ for bdm in block_device.legacy_mapping(
+ db.block_device_mapping_get_all_by_instance(context,
+ instance_uuid)):
volume_id = bdm['volume_id']
if (volume_id is None or bdm['no_device']):
continue
@@ -1091,7 +1092,7 @@ class CloudController(object):
@staticmethod
def _format_instance_type(instance, result):
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
result['instanceType'] = instance_type['name']
@staticmethod
@@ -1325,7 +1326,7 @@ class CloudController(object):
raise exception.EC2APIError(_('Image must be available'))
(instances, resv_id) = self.compute_api.create(context,
- instance_type=flavors.get_instance_type_by_name(
+ instance_type=flavors.get_flavor_by_name(
kwargs.get('instance_type', None)),
image_href=image_uuid,
max_count=int(kwargs.get('max_count', min_count)),
diff --git a/nova/api/metadata/base.py b/nova/api/metadata/base.py
index d53241308..425e5bf53 100644
--- a/nova/api/metadata/base.py
+++ b/nova/api/metadata/base.py
@@ -209,7 +209,7 @@ class InstanceMetadata():
meta_data['product-codes'] = []
if self._check_version('2007-08-29', version):
- instance_type = flavors.extract_instance_type(self.instance)
+ instance_type = flavors.extract_flavor(self.instance)
meta_data['instance-type'] = instance_type['name']
if False and self._check_version('2007-10-10', version):
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py
index b2c189e79..3455b812d 100644
--- a/nova/api/openstack/__init__.py
+++ b/nova/api/openstack/__init__.py
@@ -20,6 +20,7 @@
WSGI middleware for OpenStack API controllers.
"""
+from oslo.config import cfg
import routes
import stevedore
import webob.dec
@@ -27,13 +28,38 @@ import webob.exc
from nova.api.openstack import extensions
from nova.api.openstack import wsgi
+from nova import exception
from nova import notifications
from nova.openstack.common import log as logging
from nova import utils
from nova import wsgi as base_wsgi
+api_opts = [
+ cfg.BoolOpt('enabled',
+ default=False,
+ help='Whether the V3 API is enabled or not'),
+ cfg.ListOpt('extensions_blacklist',
+ default=[],
+ help='A list of v3 API extensions to never load. '
+ 'Specify the extension aliases here.'),
+ cfg.ListOpt('extensions_whitelist',
+ default=[],
+ help='If the list is not empty then a v3 API extension '
+ 'will only be loaded if it exists in this list. Specify '
+ 'the extension aliases here.')
+]
+api_opts_group = cfg.OptGroup(name='osapi_v3', title='API v3 Options')
+
LOG = logging.getLogger(__name__)
+CONF = cfg.CONF
+CONF.register_group(api_opts_group)
+CONF.register_opts(api_opts, api_opts_group)
+
+# List of v3 API extensions which are considered to form
+# the core API and so must be present
+# TODO(cyeoh): Expand this list as the core APIs are ported to V3
+API_V3_CORE_EXTENSIONS = set(['servers'])
class FaultWrapper(base_wsgi.Middleware):
@@ -117,6 +143,18 @@ class ProjectMapper(APIMapper):
**kwargs)
+class PlainMapper(APIMapper):
+ def resource(self, member_name, collection_name, **kwargs):
+ if 'parent_resource' in kwargs:
+ parent_resource = kwargs['parent_resource']
+ p_collection = parent_resource['collection_name']
+ p_member = parent_resource['member_name']
+ kwargs['path_prefix'] = '%s/:%s_id' % (p_collection, p_member)
+ routes.Mapper.resource(self, member_name,
+ collection_name,
+ **kwargs)
+
+
class APIRouter(base_wsgi.Router):
"""
Routes requests on the OpenStack API to the appropriate controller
@@ -210,19 +248,59 @@ class APIRouterV3(base_wsgi.Router):
"""Simple paste factory, :class:`nova.wsgi.Router` doesn't have one."""
return cls()
- def __init__(self):
+ def __init__(self, init_only=None):
# TODO(cyeoh): bp v3-api-extension-framework. Currently load
# all extensions but eventually should be able to exclude
# based on a config file
def _check_load_extension(ext):
- return isinstance(ext.obj, extensions.V3APIExtensionBase)
+ if (self.init_only is None or ext.obj.alias in
+ self.init_only) and isinstance(ext.obj,
+ extensions.V3APIExtensionBase):
+
+ # Check whitelist is either empty or if not then the extension
+ # is in the whitelist
+ if (not CONF.osapi_v3.extensions_whitelist or
+ ext.obj.alias in CONF.osapi_v3.extensions_whitelist):
+
+ # Check the extension is not in the blacklist
+ if ext.obj.alias not in CONF.osapi_v3.extensions_blacklist:
+ return self._register_extension(ext)
+ else:
+ LOG.warning(_("Not loading %s because it is "
+ "in the blacklist"), ext.obj.alias)
+ return False
+ else:
+ LOG.warning(
+ _("Not loading %s because it is not in the whitelist"),
+ ext.obj.alias)
+ return False
+ else:
+ return False
+
+ if not CONF.osapi_v3.enabled:
+ LOG.info("V3 API has been disabled by configuration")
+ return
+
+ self.init_only = init_only
+ LOG.debug(_("v3 API Extension Blacklist: %s"),
+ CONF.osapi_v3.extensions_blacklist)
+ LOG.debug(_("v3 API Extension Whitelist: %s"),
+ CONF.osapi_v3.extensions_whitelist)
+
+ in_blacklist_and_whitelist = set(
+ CONF.osapi_v3.extensions_whitelist).intersection(
+ CONF.osapi_v3.extensions_blacklist)
+ if len(in_blacklist_and_whitelist) != 0:
+ LOG.warning(_("Extensions in both blacklist and whitelist: %s"),
+ list(in_blacklist_and_whitelist))
self.api_extension_manager = stevedore.enabled.EnabledExtensionManager(
namespace=self.API_EXTENSION_NAMESPACE,
check_func=_check_load_extension,
- invoke_on_load=True)
+ invoke_on_load=True,
+ invoke_kwds={"extension_info": self.loaded_extension_info})
- mapper = ProjectMapper()
+ mapper = PlainMapper()
self.resources = {}
# NOTE(cyeoh) Core API support is rewritten as extensions
@@ -230,14 +308,31 @@ class APIRouterV3(base_wsgi.Router):
if list(self.api_extension_manager):
# NOTE(cyeoh): Stevedore raises an exception if there are
# no plugins detected. I wonder if this is a bug.
- self.api_extension_manager.map(self._register_extensions)
self.api_extension_manager.map(self._register_resources,
mapper=mapper)
self.api_extension_manager.map(self._register_controllers)
+ missing_core_extensions = self.get_missing_core_extensions(
+ self.loaded_extension_info.get_extensions().keys())
+ if missing_core_extensions:
+ LOG.critical(_("Missing core API extensions: %s"),
+ missing_core_extensions)
+ raise exception.CoreAPIMissing(
+ missing_apis=missing_core_extensions)
+
super(APIRouterV3, self).__init__(mapper)
- def _register_extensions(self, ext):
+ @staticmethod
+ def get_missing_core_extensions(extensions_loaded):
+ extensions_loaded = set(extensions_loaded)
+ missing_extensions = API_V3_CORE_EXTENSIONS - extensions_loaded
+ return missing_extensions
+
+ @property
+ def loaded_extension_info(self):
+ raise NotImplementedError()
+
+ def _register_extension(self, ext):
raise NotImplementedError()
def _register_resources(self, ext, mapper):
@@ -248,7 +343,7 @@ class APIRouterV3(base_wsgi.Router):
"""
handler = ext.obj
- LOG.debug("Running _register_resources on %s", ext.obj)
+ LOG.debug(_("Running _register_resources on %s"), ext.obj)
for resource in handler.get_resources():
LOG.debug(_('Extended resource: %s'), resource.collection)
@@ -269,7 +364,14 @@ class APIRouterV3(base_wsgi.Router):
if resource.parent:
kargs['parent_resource'] = resource.parent
- mapper.resource(resource.collection, resource.collection,
+ # non core-API plugins use the collection name as the
+ # member name, but the core-API plugins use the
+ # singular/plural convention for member/collection names
+ if resource.member_name:
+ member_name = resource.member_name
+ else:
+ member_name = resource.collection
+ mapper.resource(member_name, resource.collection,
**kargs)
if resource.custom_routes_fn:
@@ -283,7 +385,7 @@ class APIRouterV3(base_wsgi.Router):
"""
handler = ext.obj
- LOG.debug("Running _register_controllers on %s", ext.obj)
+ LOG.debug(_("Running _register_controllers on %s"), ext.obj)
for extension in handler.get_controller_extensions():
ext_name = extension.extension.name
diff --git a/nova/api/openstack/compute/__init__.py b/nova/api/openstack/compute/__init__.py
index 80247705f..e754bc011 100644
--- a/nova/api/openstack/compute/__init__.py
+++ b/nova/api/openstack/compute/__init__.py
@@ -30,6 +30,7 @@ from nova.api.openstack.compute import image_metadata
from nova.api.openstack.compute import images
from nova.api.openstack.compute import ips
from nova.api.openstack.compute import limits
+from nova.api.openstack.compute import plugins
from nova.api.openstack.compute import server_metadata
from nova.api.openstack.compute import servers
from nova.api.openstack.compute import versions
@@ -135,8 +136,13 @@ class APIRouterV3(nova.api.openstack.APIRouterV3):
Routes requests on the OpenStack API to the appropriate controller
and method.
"""
+ def __init__(self, init_only=None):
+ self._loaded_extension_info = plugins.LoadedExtensionInfo()
+ super(APIRouterV3, self).__init__(init_only)
- def _register_extensions(self, ext):
- pass
- # TODO(cyeoh): bp v3-api-extension-framework - Register extension
- # information
+ def _register_extension(self, ext):
+ return self.loaded_extension_info.register_extension(ext.obj)
+
+ @property
+ def loaded_extension_info(self):
+ return self._loaded_extension_info
diff --git a/nova/api/openstack/compute/contrib/admin_actions.py b/nova/api/openstack/compute/contrib/admin_actions.py
index 3452136c0..10a318294 100644
--- a/nova/api/openstack/compute/contrib/admin_actions.py
+++ b/nova/api/openstack/compute/contrib/admin_actions.py
@@ -123,7 +123,7 @@ class AdminActionsController(wsgi.Controller):
except exception.InstanceInvalidState as state_error:
common.raise_http_conflict_for_instance_invalid_state(state_error,
'migrate')
- except Exception, e:
+ except Exception as e:
LOG.exception(_("Error in migrate %s"), e)
raise exc.HTTPBadRequest()
return webob.Response(status_int=202)
diff --git a/nova/api/openstack/compute/contrib/aggregates.py b/nova/api/openstack/compute/contrib/aggregates.py
index b6b9f3561..af04c9b14 100644
--- a/nova/api/openstack/compute/contrib/aggregates.py
+++ b/nova/api/openstack/compute/contrib/aggregates.py
@@ -36,7 +36,7 @@ def get_host_from_body(fn):
if len(body) == 1 and "host" in body:
host = body['host']
else:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
return fn(self, req, id, host, *args, **kwargs)
return wrapped
@@ -59,21 +59,21 @@ class AggregateController(object):
authorize(context)
if len(body) != 1:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
try:
host_aggregate = body["aggregate"]
name = host_aggregate["name"]
avail_zone = host_aggregate["availability_zone"]
except KeyError:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
if len(host_aggregate) != 2:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
try:
aggregate = self.api.create_aggregate(context, name, avail_zone)
except exception.AggregateNameExists as e:
LOG.info(e)
- raise exc.HTTPConflict
+ raise exc.HTTPConflict()
except exception.InvalidAggregateAction as e:
LOG.info(e)
raise
@@ -87,7 +87,7 @@ class AggregateController(object):
aggregate = self.api.get_aggregate(context, id)
except exception.AggregateNotFound:
LOG.info(_("Cannot show aggregate: %s"), id)
- raise exc.HTTPNotFound
+ raise exc.HTTPNotFound()
return self._marshall_aggregate(aggregate)
def update(self, req, id, body):
@@ -96,24 +96,24 @@ class AggregateController(object):
authorize(context)
if len(body) != 1:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
try:
updates = body["aggregate"]
except KeyError:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
if len(updates) < 1:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
for key in updates.keys():
if key not in ["name", "availability_zone"]:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
try:
aggregate = self.api.update_aggregate(context, id, updates)
except exception.AggregateNotFound:
LOG.info(_('Cannot update aggregate: %s'), id)
- raise exc.HTTPNotFound
+ raise exc.HTTPNotFound()
return self._marshall_aggregate(aggregate)
@@ -125,7 +125,7 @@ class AggregateController(object):
self.api.delete_aggregate(context, id)
except exception.AggregateNotFound:
LOG.info(_('Cannot delete aggregate: %s'), id)
- raise exc.HTTPNotFound
+ raise exc.HTTPNotFound()
def action(self, req, id, body):
_actions = {
@@ -152,12 +152,12 @@ class AggregateController(object):
except (exception.AggregateNotFound, exception.ComputeHostNotFound):
LOG.info(_('Cannot add host %(host)s in aggregate %(id)s'),
{'host': host, 'id': id})
- raise exc.HTTPNotFound
+ raise exc.HTTPNotFound()
except (exception.AggregateHostExists,
exception.InvalidAggregateAction):
LOG.info(_('Cannot add host %(host)s in aggregate %(id)s'),
{'host': host, 'id': id})
- raise exc.HTTPConflict
+ raise exc.HTTPConflict()
return self._marshall_aggregate(aggregate)
@get_host_from_body
@@ -171,11 +171,11 @@ class AggregateController(object):
exception.ComputeHostNotFound):
LOG.info(_('Cannot remove host %(host)s in aggregate %(id)s'),
{'host': host, 'id': id})
- raise exc.HTTPNotFound
+ raise exc.HTTPNotFound()
except exception.InvalidAggregateAction:
LOG.info(_('Cannot remove host %(host)s in aggregate %(id)s'),
{'host': host, 'id': id})
- raise exc.HTTPConflict
+ raise exc.HTTPConflict()
return self._marshall_aggregate(aggregate)
def _set_metadata(self, req, id, body):
@@ -184,18 +184,18 @@ class AggregateController(object):
authorize(context)
if len(body) != 1:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
try:
metadata = body["metadata"]
except KeyError:
- raise exc.HTTPBadRequest
+ raise exc.HTTPBadRequest()
try:
aggregate = self.api.update_aggregate_metadata(context,
id, metadata)
except exception.AggregateNotFound:
LOG.info(_('Cannot set metadata %(metadata)s in aggregate %(id)s'),
{'metadata': metadata, 'id': id})
- raise exc.HTTPNotFound
+ raise exc.HTTPNotFound()
return self._marshall_aggregate(aggregate)
diff --git a/nova/api/openstack/compute/contrib/attach_interfaces.py b/nova/api/openstack/compute/contrib/attach_interfaces.py
index a838354d0..ec565a0d1 100644
--- a/nova/api/openstack/compute/contrib/attach_interfaces.py
+++ b/nova/api/openstack/compute/contrib/attach_interfaces.py
@@ -102,13 +102,13 @@ class InterfaceAttachmentController(object):
LOG.audit(_("Attach interface"), instance=instance)
network_info = self.compute_api.attach_interface(context,
instance, network_id, port_id, req_ip)
- except exception.NotFound, e:
+ except exception.NotFound as e:
LOG.exception(e)
raise exc.HTTPNotFound()
except NotImplementedError:
msg = _("Network driver does not support this function.")
raise webob.exc.HTTPNotImplemented(explanation=msg)
- except exception.InterfaceAttachFailed, e:
+ except exception.InterfaceAttachFailed as e:
LOG.exception(e)
msg = _("Failed to attach interface")
raise webob.exc.HTTPInternalServerError(explanation=msg)
@@ -137,7 +137,7 @@ class InterfaceAttachmentController(object):
self.compute_api.detach_interface(context,
instance, port_id=port_id)
except exception.PortNotFound:
- raise exc.HTTPNotFound
+ raise exc.HTTPNotFound()
except NotImplementedError:
msg = _("Network driver does not support this function.")
raise webob.exc.HTTPNotImplemented(explanation=msg)
diff --git a/nova/api/openstack/compute/contrib/baremetal_nodes.py b/nova/api/openstack/compute/contrib/baremetal_nodes.py
index 1c442d2fa..2f2ddc35b 100644
--- a/nova/api/openstack/compute/contrib/baremetal_nodes.py
+++ b/nova/api/openstack/compute/contrib/baremetal_nodes.py
@@ -116,7 +116,7 @@ class BareMetalNodeController(wsgi.Controller):
try:
node = db.bm_node_get(context, id)
except exception.NodeNotFound:
- raise webob.exc.HTTPNotFound
+ raise webob.exc.HTTPNotFound()
try:
ifs = db.bm_interface_get_all_by_bm_node_id(context, id)
except exception.NodeNotFound:
@@ -151,14 +151,14 @@ class BareMetalNodeController(wsgi.Controller):
try:
db.bm_node_destroy(context, id)
except exception.NodeNotFound:
- raise webob.exc.HTTPNotFound
+ raise webob.exc.HTTPNotFound()
return webob.Response(status_int=202)
def _check_node_exists(self, context, node_id):
try:
db.bm_node_get(context, node_id)
except exception.NodeNotFound:
- raise webob.exc.HTTPNotFound
+ raise webob.exc.HTTPNotFound()
@wsgi.serializers(xml=InterfaceTemplate)
@wsgi.action('add_interface')
@@ -198,7 +198,7 @@ class BareMetalNodeController(wsgi.Controller):
continue
db.bm_interface_destroy(context, i['id'])
return webob.Response(status_int=202)
- raise webob.exc.HTTPNotFound
+ raise webob.exc.HTTPNotFound()
class Baremetal_nodes(extensions.ExtensionDescriptor):
diff --git a/nova/api/openstack/compute/contrib/cell_capacities.py b/nova/api/openstack/compute/contrib/cell_capacities.py
new file mode 100644
index 000000000..ae8b42336
--- /dev/null
+++ b/nova/api/openstack/compute/contrib/cell_capacities.py
@@ -0,0 +1,27 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+#
+# Copyright 2013 Rackspace Hosting
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License
+
+from nova.api.openstack import extensions
+
+
+class Cell_capacities(extensions.ExtensionDescriptor):
+ """Adding functionality to get cell capacities."""
+
+ name = "CellCapacities"
+ alias = "os-cell-capacities"
+ namespace = ("http://docs.openstack.org/compute/ext/"
+ "cell_capacities/api/v1.1")
+ updated = "2013-05-27T00:00:00+00:00"
diff --git a/nova/api/openstack/compute/contrib/cells.py b/nova/api/openstack/compute/contrib/cells.py
index 03597ff0e..4e809d70e 100644
--- a/nova/api/openstack/compute/contrib/cells.py
+++ b/nova/api/openstack/compute/contrib/cells.py
@@ -52,8 +52,33 @@ def make_cell(elem):
cap = xmlutil.SubTemplateElement(caps, xmlutil.Selector(0),
selector=xmlutil.get_items)
cap.text = 1
+ make_capacity(elem)
+def make_capacity(cell):
+
+ def get_units_by_mb(capacity_info):
+ return capacity_info['units_by_mb'].items()
+
+ capacity = xmlutil.SubTemplateElement(cell, 'capacities',
+ selector='capacities')
+
+ ram_free = xmlutil.SubTemplateElement(capacity, 'ram_free',
+ selector='ram_free')
+ ram_free.set('total_mb', 'total_mb')
+ unit_by_mb = xmlutil.SubTemplateElement(ram_free, 'unit_by_mb',
+ selector=get_units_by_mb)
+ unit_by_mb.set('mb', 0)
+ unit_by_mb.set('unit', 1)
+
+ disk_free = xmlutil.SubTemplateElement(capacity, 'disk_free',
+ selector='disk_free')
+ disk_free.set('total_mb', 'total_mb')
+ unit_by_mb = xmlutil.SubTemplateElement(disk_free, 'unit_by_mb',
+ selector=get_units_by_mb)
+ unit_by_mb.set('mb', 0)
+ unit_by_mb.set('unit', 1)
+
cell_nsmap = {None: wsgi.XMLNS_V10}
@@ -123,9 +148,10 @@ def _scrub_cell(cell, detail=False):
class Controller(object):
"""Controller for Cell resources."""
- def __init__(self):
+ def __init__(self, ext_mgr):
self.compute_api = compute.API()
self.cells_rpcapi = cells_rpcapi.CellsAPI()
+ self.ext_mgr = ext_mgr
def _get_cells(self, ctxt, req, detail=False):
"""Return all cells."""
@@ -168,6 +194,25 @@ class Controller(object):
return dict(cell=cell)
@wsgi.serializers(xml=CellTemplate)
+ def capacities(self, req, id=None):
+ """Return capacities for a given cell or all cells."""
+ # TODO(kaushikc): return capacities as a part of cell info and
+ # cells detail calls in v3, along with capabilities
+ if not self.ext_mgr.is_loaded('os-cell-capacities'):
+ raise exc.HTTPNotFound()
+
+ context = req.environ['nova.context']
+ authorize(context)
+ try:
+ capacities = self.cells_rpcapi.get_capacities(context,
+ cell_name=id)
+ except exception.CellNotFound:
+ msg = (_("Cell %(id)s not found.") % {'id': id})
+ raise exc.HTTPNotFound(explanation=msg)
+
+ return dict(cell={"capacities": capacities})
+
+ @wsgi.serializers(xml=CellTemplate)
def show(self, req, id):
"""Return data about the given cell name. 'id' is a cell name."""
context = req.environ['nova.context']
@@ -283,15 +328,20 @@ class Cells(extensions.ExtensionDescriptor):
name = "Cells"
alias = "os-cells"
namespace = "http://docs.openstack.org/compute/ext/cells/api/v1.1"
- updated = "2011-09-21T00:00:00+00:00"
+ updated = "2013-05-14T00:00:00+00:00"
def get_resources(self):
coll_actions = {
'detail': 'GET',
'info': 'GET',
'sync_instances': 'POST',
- }
+ 'capacities': 'GET',
+ }
+ memb_actions = {
+ 'capacities': 'GET',
+ }
res = extensions.ResourceExtension('os-cells',
- Controller(), collection_actions=coll_actions)
+ Controller(self.ext_mgr), collection_actions=coll_actions,
+ member_actions=memb_actions)
return [res]
diff --git a/nova/api/openstack/compute/contrib/extended_quotas.py b/nova/api/openstack/compute/contrib/extended_quotas.py
new file mode 100644
index 000000000..431b95e9b
--- /dev/null
+++ b/nova/api/openstack/compute/contrib/extended_quotas.py
@@ -0,0 +1,25 @@
+# Copyright 2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from nova.api.openstack import extensions
+
+
+class Extended_quotas(extensions.ExtensionDescriptor):
+ """Adds ability for admins to delete quota."""
+
+ name = "ExtendedQuotas"
+ alias = "os-extended-quotas"
+ namespace = "http://docs.openstack.org/compute/ext/quota-delete/api/v1.1"
+ updated = "2013-05-23T00:00:00+00:00"
diff --git a/nova/api/openstack/compute/contrib/extended_services.py b/nova/api/openstack/compute/contrib/extended_services.py
new file mode 100644
index 000000000..f9f1a4d86
--- /dev/null
+++ b/nova/api/openstack/compute/contrib/extended_services.py
@@ -0,0 +1,11 @@
+from nova.api.openstack import extensions
+
+
+class Extended_services(extensions.ExtensionDescriptor):
+ """Extended services support."""
+
+ name = "ExtendedServices"
+ alias = "os-extended-services"
+ namespace = ("http://docs.openstack.org/compute/ext/"
+ "extended_services/api/v2")
+ updated = "2013-05-17T00:00:00-00:00"
diff --git a/nova/api/openstack/compute/contrib/fixed_ips.py b/nova/api/openstack/compute/contrib/fixed_ips.py
index 8c7e4f7d3..b474b685d 100644
--- a/nova/api/openstack/compute/contrib/fixed_ips.py
+++ b/nova/api/openstack/compute/contrib/fixed_ips.py
@@ -31,7 +31,8 @@ class FixedIPController(object):
try:
fixed_ip = db.fixed_ip_get_by_address_detailed(context, id)
- except exception.FixedIpNotFoundForAddress as ex:
+ except (exception.FixedIpNotFoundForAddress,
+ exception.FixedIpInvalid) as ex:
raise webob.exc.HTTPNotFound(explanation=ex.format_message())
fixed_ip_info = {"fixed_ip": {}}
@@ -54,6 +55,7 @@ class FixedIPController(object):
def action(self, req, id, body):
context = req.environ['nova.context']
authorize(context)
+
if 'reserve' in body:
return self._set_reserved(context, id, True)
elif 'unreserve' in body:
@@ -67,7 +69,8 @@ class FixedIPController(object):
fixed_ip = db.fixed_ip_get_by_address(context, address)
db.fixed_ip_update(context, fixed_ip['address'],
{'reserved': reserved})
- except exception.FixedIpNotFoundForAddress:
+ except (exception.FixedIpNotFoundForAddress,
+ exception.FixedIpInvalid) as ex:
msg = _("Fixed IP %s not found") % address
raise webob.exc.HTTPNotFound(explanation=msg)
diff --git a/nova/api/openstack/compute/contrib/flavor_access.py b/nova/api/openstack/compute/contrib/flavor_access.py
index 566eb6472..bea92d883 100644
--- a/nova/api/openstack/compute/contrib/flavor_access.py
+++ b/nova/api/openstack/compute/contrib/flavor_access.py
@@ -71,7 +71,7 @@ def _marshall_flavor_access(flavor_id):
rval = []
try:
access_list = flavors.\
- get_instance_type_access_by_flavor_id(flavor_id)
+ get_flavor_access_by_flavor_id(flavor_id)
except exception.FlavorNotFound:
explanation = _("Flavor not found.")
raise webob.exc.HTTPNotFound(explanation=explanation)
@@ -95,7 +95,7 @@ class FlavorAccessController(object):
authorize(context)
try:
- flavor = flavors.get_instance_type_by_flavor_id(flavor_id)
+ flavor = flavors.get_flavor_by_flavor_id(flavor_id)
except exception.FlavorNotFound:
explanation = _("Flavor not found.")
raise webob.exc.HTTPNotFound(explanation=explanation)
@@ -119,7 +119,7 @@ class FlavorActionController(wsgi.Controller):
def _get_flavor_refs(self, context):
"""Return a dictionary mapping flavorid to flavor_ref."""
- flavor_refs = flavors.get_all_types(context)
+ flavor_refs = flavors.get_all_flavors(context)
rval = {}
for name, obj in flavor_refs.iteritems():
rval[obj['flavorid']] = obj
@@ -173,7 +173,7 @@ class FlavorActionController(wsgi.Controller):
tenant = vals['tenant']
try:
- flavors.add_instance_type_access(id, tenant, context)
+ flavors.add_flavor_access(id, tenant, context)
except exception.FlavorAccessExists as err:
raise webob.exc.HTTPConflict(explanation=err.format_message())
@@ -190,8 +190,8 @@ class FlavorActionController(wsgi.Controller):
tenant = vals['tenant']
try:
- flavors.remove_instance_type_access(id, tenant, context)
- except exception.FlavorAccessNotFound, e:
+ flavors.remove_flavor_access(id, tenant, context)
+ except exception.FlavorAccessNotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
return _marshall_flavor_access(id)
diff --git a/nova/api/openstack/compute/contrib/flavormanage.py b/nova/api/openstack/compute/contrib/flavormanage.py
index 086c541dc..43d5d2110 100644
--- a/nova/api/openstack/compute/contrib/flavormanage.py
+++ b/nova/api/openstack/compute/contrib/flavormanage.py
@@ -40,9 +40,9 @@ class FlavorManageController(wsgi.Controller):
authorize(context)
try:
- flavor = flavors.get_instance_type_by_flavor_id(
+ flavor = flavors.get_flavor_by_flavor_id(
id, read_deleted="no")
- except exception.NotFound, e:
+ except exception.NotFound as e:
raise webob.exc.HTTPNotFound(explanation=e.format_message())
flavors.destroy(flavor['name'])
diff --git a/nova/api/openstack/compute/contrib/floating_ips.py b/nova/api/openstack/compute/contrib/floating_ips.py
index a3d03e8de..284a211cd 100644
--- a/nova/api/openstack/compute/contrib/floating_ips.py
+++ b/nova/api/openstack/compute/contrib/floating_ips.py
@@ -125,7 +125,7 @@ class FloatingIPController(object):
try:
floating_ip = self.network_api.get_floating_ip(context, id)
- except exception.NotFound:
+ except (exception.NotFound, exception.InvalidID):
msg = _("Floating ip not found for id %s") % id
raise webob.exc.HTTPNotFound(explanation=msg)
@@ -173,7 +173,7 @@ class FloatingIPController(object):
# get the floating ip object
try:
floating_ip = self.network_api.get_floating_ip(context, id)
- except exception.NotFound:
+ except (exception.NotFound, exception.InvalidID):
msg = _("Floating ip not found for id %s") % id
raise webob.exc.HTTPNotFound(explanation=msg)
address = floating_ip['address']
diff --git a/nova/api/openstack/compute/contrib/instance_actions.py b/nova/api/openstack/compute/contrib/instance_actions.py
index 4eaa9a1ee..3b15de2ba 100644
--- a/nova/api/openstack/compute/contrib/instance_actions.py
+++ b/nova/api/openstack/compute/contrib/instance_actions.py
@@ -19,6 +19,7 @@ from nova.api.openstack import extensions
from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
from nova import compute
+from nova import exception
authorize_actions = extensions.extension_authorizer('compute',
'instance_actions')
@@ -84,7 +85,10 @@ class InstanceActionsController(wsgi.Controller):
def index(self, req, server_id):
"""Returns the list of actions recorded for a given instance."""
context = req.environ["nova.context"]
- instance = self.compute_api.get(context, server_id)
+ try:
+ instance = self.compute_api.get(context, server_id)
+ except exception.InstanceNotFound as err:
+ raise exc.HTTPNotFound(explanation=err.format_message())
authorize_actions(context, target=instance)
actions_raw = self.action_api.actions_get(context, instance)
actions = [self._format_action(action) for action in actions_raw]
diff --git a/nova/api/openstack/compute/contrib/keypairs.py b/nova/api/openstack/compute/contrib/keypairs.py
index a79b39aae..4245355e5 100644
--- a/nova/api/openstack/compute/contrib/keypairs.py
+++ b/nova/api/openstack/compute/contrib/keypairs.py
@@ -94,12 +94,10 @@ class KeypairController(object):
raise webob.exc.HTTPRequestEntityTooLarge(
explanation=msg,
headers={'Retry-After': 0})
- except exception.InvalidKeypair:
- msg = _("Keypair data is invalid")
- raise webob.exc.HTTPBadRequest(explanation=msg)
- except exception.KeyPairExists:
- msg = _("Key pair '%s' already exists.") % name
- raise webob.exc.HTTPConflict(explanation=msg)
+ except exception.InvalidKeypair as exc:
+ raise webob.exc.HTTPBadRequest(explanation=exc.format_message())
+ except exception.KeyPairExists as exc:
+ raise webob.exc.HTTPConflict(explanation=exc.format_message())
def delete(self, req, id):
"""
diff --git a/nova/api/openstack/compute/contrib/quotas.py b/nova/api/openstack/compute/contrib/quotas.py
index c7fe87a1f..0a2453038 100644
--- a/nova/api/openstack/compute/contrib/quotas.py
+++ b/nova/api/openstack/compute/contrib/quotas.py
@@ -33,6 +33,7 @@ LOG = logging.getLogger(__name__)
authorize_update = extensions.extension_authorizer('compute', 'quotas:update')
authorize_show = extensions.extension_authorizer('compute', 'quotas:show')
+authorize_delete = extensions.extension_authorizer('compute', 'quotas:delete')
class QuotaTemplate(xmlutil.TemplateBuilder):
@@ -49,6 +50,9 @@ class QuotaTemplate(xmlutil.TemplateBuilder):
class QuotaSetsController(object):
+ def __init__(self, ext_mgr):
+ self.ext_mgr = ext_mgr
+
def _format_quota_set(self, project_id, quota_set):
"""Convert the quota object to a result dict."""
@@ -124,6 +128,18 @@ class QuotaSetsController(object):
authorize_show(context)
return self._format_quota_set(id, QUOTAS.get_defaults(context))
+ def delete(self, req, id):
+ if self.ext_mgr.is_loaded('os-extended-quotas'):
+ context = req.environ['nova.context']
+ authorize_delete(context)
+ try:
+ nova.context.authorize_project_context(context, id)
+ QUOTAS.destroy_all_by_project(context, id)
+ return webob.Response(status_int=202)
+ except exception.NotAuthorized:
+ raise webob.exc.HTTPForbidden()
+ raise webob.exc.HTTPNotFound()
+
class Quotas(extensions.ExtensionDescriptor):
"""Quotas management support."""
@@ -137,7 +153,7 @@ class Quotas(extensions.ExtensionDescriptor):
resources = []
res = extensions.ResourceExtension('os-quota-sets',
- QuotaSetsController(),
+ QuotaSetsController(self.ext_mgr),
member_actions={'defaults': 'GET'})
resources.append(res)
diff --git a/nova/api/openstack/compute/contrib/security_groups.py b/nova/api/openstack/compute/contrib/security_groups.py
index de5a9bd8e..b34a77cab 100644
--- a/nova/api/openstack/compute/contrib/security_groups.py
+++ b/nova/api/openstack/compute/contrib/security_groups.py
@@ -289,8 +289,36 @@ class SecurityGroupController(SecurityGroupControllerBase):
self.security_group_api.validate_property(group_description,
'description', None)
- group_ref = self.security_group_api.create_security_group(
- context, group_name, group_description)
+ try:
+ group_ref = self.security_group_api.create_security_group(
+ context, group_name, group_description)
+ except exception.SecurityGroupLimitExceeded as err:
+ raise exc.HTTPRequestEntityTooLarge(
+ explanation=err.format_message())
+
+ return {'security_group': self._format_security_group(context,
+ group_ref)}
+
+ @wsgi.serializers(xml=SecurityGroupTemplate)
+ def update(self, req, id, body):
+ """Update a security group."""
+ context = _authorize_context(req)
+
+ id = self.security_group_api.validate_id(id)
+
+ security_group = self.security_group_api.get(context, None, id,
+ map_exception=True)
+ security_group_data = self._from_body(body, 'security_group')
+
+ group_name = security_group_data.get('name', None)
+ group_description = security_group_data.get('description', None)
+
+ self.security_group_api.validate_property(group_name, 'name', None)
+ self.security_group_api.validate_property(group_description,
+ 'description', None)
+
+ group_ref = self.security_group_api.update_security_group(
+ context, security_group, group_name, group_description)
return {'security_group': self._format_security_group(context,
group_ref)}
@@ -332,9 +360,13 @@ class SecurityGroupRulesController(SecurityGroupControllerBase):
msg = _("Bad prefix for network in cidr %s") % new_rule['cidr']
raise exc.HTTPBadRequest(explanation=msg)
- security_group_rule = (
- self.security_group_api.create_security_group_rule(
- context, security_group, new_rule))
+ try:
+ security_group_rule = (
+ self.security_group_api.create_security_group_rule(
+ context, security_group, new_rule))
+ except exception.SecurityGroupLimitExceeded as err:
+ raise exc.HTTPRequestEntityTooLarge(
+ explanation=err.format_message())
return {"security_group_rule": self._format_security_group_rule(
context,
@@ -388,7 +420,7 @@ class ServerSecurityGroupController(SecurityGroupControllerBase):
raise exc.HTTPNotFound(explanation=exp.format_message())
groups = self.security_group_api.get_instance_security_groups(
- context, instance['id'], instance['uuid'], True)
+ context, instance['uuid'], True)
result = [self._format_security_group(context, group)
for group in groups]
@@ -466,6 +498,8 @@ class SecurityGroupsOutputController(wsgi.Controller):
def _extend_servers(self, req, servers):
# TODO(arosen) this function should be refactored to reduce duplicate
# code and use get_instance_security_groups instead of get_db_instance.
+ if not len(servers):
+ return
key = "security_groups"
context = _authorize_context(req)
if not openstack_driver.is_quantum_security_groups():
@@ -480,13 +514,20 @@ class SecurityGroupsOutputController(wsgi.Controller):
# quantum security groups the requested security groups for the
# instance are not in the db and have not been sent to quantum yet.
if req.method != 'POST':
- sg_instance_bindings = (
- self.security_group_api
- .get_instances_security_groups_bindings(context))
- for server in servers:
- groups = sg_instance_bindings.get(server['id'])
- if groups:
- server[key] = groups
+ if len(servers) == 1:
+ group = (self.security_group_api
+ .get_instance_security_groups(context,
+ servers[0]['id']))
+ if group:
+ servers[0][key] = group
+ else:
+ sg_instance_bindings = (
+ self.security_group_api
+ .get_instances_security_groups_bindings(context))
+ for server in servers:
+ groups = sg_instance_bindings.get(server['id'])
+ if groups:
+ server[key] = groups
# In this section of code len(servers) == 1 as you can only POST
# one server in an API request.
else:
@@ -568,7 +609,7 @@ class Security_groups(extensions.ExtensionDescriptor):
name = "SecurityGroups"
alias = "os-security-groups"
namespace = "http://docs.openstack.org/compute/ext/securitygroups/api/v1.1"
- updated = "2011-07-21T00:00:00+00:00"
+ updated = "2013-05-28T00:00:00+00:00"
def get_controller_extensions(self):
controller = SecurityGroupActionController()
diff --git a/nova/api/openstack/compute/contrib/server_usage.py b/nova/api/openstack/compute/contrib/server_usage.py
new file mode 100644
index 000000000..fb9dc9f6a
--- /dev/null
+++ b/nova/api/openstack/compute/contrib/server_usage.py
@@ -0,0 +1,97 @@
+# Copyright 2013 Openstack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from nova.api.openstack import extensions
+from nova.api.openstack import wsgi
+from nova.api.openstack import xmlutil
+from nova import compute
+from nova.openstack.common import log as logging
+
+LOG = logging.getLogger(__name__)
+authorize = extensions.soft_extension_authorizer('compute', 'server_usage')
+
+
+class ServerUsageController(wsgi.Controller):
+ def __init__(self, *args, **kwargs):
+ super(ServerUsageController, self).__init__(*args, **kwargs)
+ self.compute_api = compute.API()
+
+ def _extend_server(self, server, instance):
+ for k in ['launched_at', 'terminated_at']:
+ key = "%s:%s" % (Server_usage.alias, k)
+ server[key] = instance[k]
+
+ @wsgi.extends
+ def show(self, req, resp_obj, id):
+ context = req.environ['nova.context']
+ if authorize(context):
+ # Attach our slave template to the response object
+ resp_obj.attach(xml=ServerUsageTemplate())
+ server = resp_obj.obj['server']
+ db_instance = req.get_db_instance(server['id'])
+ # server['id'] is guaranteed to be in the cache due to
+ # the core API adding it in its 'show' method.
+ self._extend_server(server, db_instance)
+
+ @wsgi.extends
+ def detail(self, req, resp_obj):
+ context = req.environ['nova.context']
+ if authorize(context):
+ # Attach our slave template to the response object
+ resp_obj.attach(xml=ServerUsagesTemplate())
+ servers = list(resp_obj.obj['servers'])
+ for server in servers:
+ db_instance = req.get_db_instance(server['id'])
+ # server['id'] is guaranteed to be in the cache due to
+ # the core API adding it in its 'detail' method.
+ self._extend_server(server, db_instance)
+
+
+class Server_usage(extensions.ExtensionDescriptor):
+ """Adds launched_at and terminated_at on Servers."""
+
+ name = "ServerUsage"
+ alias = "OS-SRV-USG"
+ namespace = ("http://docs.openstack.org/compute/ext/"
+ "server_usage/api/v1.1")
+ updated = "2013-04-29T00:00:00+00:00"
+
+ def get_controller_extensions(self):
+ controller = ServerUsageController()
+ extension = extensions.ControllerExtension(self, 'servers', controller)
+ return [extension]
+
+
+def make_server(elem):
+ elem.set('{%s}launched_at' % Server_usage.namespace,
+ '%s:launched_at' % Server_usage.alias)
+ elem.set('{%s}terminated_at' % Server_usage.namespace,
+ '%s:terminated_at' % Server_usage.alias)
+
+
+class ServerUsageTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('server', selector='server')
+ make_server(root)
+ return xmlutil.SlaveTemplate(root, 1, nsmap={
+ Server_usage.alias: Server_usage.namespace})
+
+
+class ServerUsagesTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('servers')
+ elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
+ make_server(elem)
+ return xmlutil.SlaveTemplate(root, 1, nsmap={
+ Server_usage.alias: Server_usage.namespace})
diff --git a/nova/api/openstack/compute/contrib/services.py b/nova/api/openstack/compute/contrib/services.py
index 9952484f7..3a637010a 100644
--- a/nova/api/openstack/compute/contrib/services.py
+++ b/nova/api/openstack/compute/contrib/services.py
@@ -22,7 +22,7 @@ from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
from nova import compute
from nova import exception
-from nova.openstack.common import timeutils
+from nova import servicegroup
from nova import utils
authorize = extensions.extension_authorizer('compute', 'services')
@@ -40,6 +40,7 @@ class ServicesIndexTemplate(xmlutil.TemplateBuilder):
elem.set('status')
elem.set('state')
elem.set('updated_at')
+ elem.set('disabled_reason')
return xmlutil.MasterTemplate(root, 1)
@@ -50,6 +51,7 @@ class ServiceUpdateTemplate(xmlutil.TemplateBuilder):
root.set('host')
root.set('binary')
root.set('status')
+ root.set('disabled_reason')
return xmlutil.MasterTemplate(root, 1)
@@ -63,23 +65,22 @@ class ServiceUpdateDeserializer(wsgi.XMLDeserializer):
return service
service['host'] = service_node.getAttribute('host')
service['binary'] = service_node.getAttribute('binary')
+ service['disabled_reason'] = service_node.getAttribute(
+ 'disabled_reason')
return dict(body=service)
class ServiceController(object):
- def __init__(self):
+ def __init__(self, ext_mgr=None, *args, **kwargs):
self.host_api = compute.HostAPI()
+ self.servicegroup_api = servicegroup.API()
+ self.ext_mgr = ext_mgr
- @wsgi.serializers(xml=ServicesIndexTemplate)
- def index(self, req):
- """
- Return a list of all running services. Filter by host & service name.
- """
+ def _get_services(self, req):
context = req.environ['nova.context']
authorize(context)
- now = timeutils.utcnow()
services = self.host_api.service_get_all(
context, set_zones=True)
@@ -94,19 +95,49 @@ class ServiceController(object):
if binary:
services = [s for s in services if s['binary'] == binary]
+ return services
+
+ def _get_service_detail(self, svc, detailed):
+ alive = self.servicegroup_api.service_is_up(svc)
+ state = (alive and "up") or "down"
+ active = 'enabled'
+ if svc['disabled']:
+ active = 'disabled'
+ service_detail = {'binary': svc['binary'], 'host': svc['host'],
+ 'zone': svc['availability_zone'],
+ 'status': active, 'state': state,
+ 'updated_at': svc['updated_at']}
+ if detailed:
+ service_detail['disabled_reason'] = svc['disabled_reason']
+
+ return service_detail
+
+ def _get_services_list(self, req, detailed):
+ services = self._get_services(req)
svcs = []
for svc in services:
- delta = now - (svc['updated_at'] or svc['created_at'])
- alive = abs(utils.total_seconds(delta)) <= CONF.service_down_time
- art = (alive and "up") or "down"
- active = 'enabled'
- if svc['disabled']:
- active = 'disabled'
- svcs.append({"binary": svc['binary'], 'host': svc['host'],
- 'zone': svc['availability_zone'],
- 'status': active, 'state': art,
- 'updated_at': svc['updated_at']})
- return {'services': svcs}
+ svcs.append(self._get_service_detail(svc, detailed))
+
+ return svcs
+
+ def _is_valid_as_reason(self, reason):
+ try:
+ utils.check_string_length(reason.strip(), 'Disabled reason',
+ min_length=1, max_length=255)
+ except exception.InvalidInput:
+ return False
+
+ return True
+
+ @wsgi.serializers(xml=ServicesIndexTemplate)
+ def index(self, req):
+ """
+ Return a list of all running services. Filter by host & service name.
+ """
+ detailed = self.ext_mgr.is_loaded('os-extended-services')
+ services = self._get_services_list(req, detailed)
+
+ return {'services': services}
@wsgi.deserializers(xml=ServiceUpdateDeserializer)
@wsgi.serializers(xml=ServiceUpdateTemplate)
@@ -115,28 +146,49 @@ class ServiceController(object):
context = req.environ['nova.context']
authorize(context)
+ ext_loaded = self.ext_mgr.is_loaded('os-extended-services')
if id == "enable":
disabled = False
- elif id == "disable":
+ status = "enabled"
+ elif (id == "disable" or
+ (id == "disable-log-reason" and ext_loaded)):
disabled = True
+ status = "disabled"
else:
- raise webob.exc.HTTPNotFound(_("Unknown action"))
-
- status = id + 'd'
-
+ raise webob.exc.HTTPNotFound("Unknown action")
try:
host = body['host']
binary = body['binary']
+ ret_value = {
+ 'service': {
+ 'host': host,
+ 'binary': binary,
+ 'status': status,
+ },
+ }
+ status_detail = {'disabled': disabled}
+ if id == "disable-log-reason":
+ reason = body['disabled_reason']
+ if not self._is_valid_as_reason(reason):
+ msg = _('Disabled reason contains invalid characters '
+ 'or is too long')
+ raise webob.exc.HTTPUnprocessableEntity(detail=msg)
+
+ status_detail['disabled_reason'] = reason
+ ret_value['service']['disabled_reason'] = reason
except (TypeError, KeyError):
- raise webob.exc.HTTPUnprocessableEntity()
+ msg = _('Invalid attribute in the request')
+ if 'host' in body and 'binary' in body:
+ msg = _('Missing disabled reason field')
+ raise webob.exc.HTTPUnprocessableEntity(detail=msg)
try:
svc = self.host_api.service_update(context, host, binary,
- {'disabled': disabled})
- except exception.ServiceNotFound as exc:
+ status_detail)
+ except exception.ServiceNotFound:
raise webob.exc.HTTPNotFound(_("Unknown service"))
- return {'service': {'host': host, 'binary': binary, 'status': status}}
+ return ret_value
class Services(extensions.ExtensionDescriptor):
@@ -150,6 +202,7 @@ class Services(extensions.ExtensionDescriptor):
def get_resources(self):
resources = []
resource = extensions.ResourceExtension('os-services',
- ServiceController())
+ ServiceController(self.ext_mgr))
+
resources.append(resource)
return resources
diff --git a/nova/api/openstack/compute/contrib/simple_tenant_usage.py b/nova/api/openstack/compute/contrib/simple_tenant_usage.py
index e5f9b44b7..cee1f6d85 100644
--- a/nova/api/openstack/compute/contrib/simple_tenant_usage.py
+++ b/nova/api/openstack/compute/contrib/simple_tenant_usage.py
@@ -108,7 +108,7 @@ class SimpleTenantUsageController(object):
"""Get flavor information from the instance's system_metadata,
allowing a fallback to lookup by-id for deleted instances only."""
try:
- return flavors.extract_instance_type(instance)
+ return flavors.extract_flavor(instance)
except KeyError:
if not instance['deleted']:
# Only support the fallback mechanism for deleted instances
diff --git a/nova/api/openstack/compute/contrib/used_limits.py b/nova/api/openstack/compute/contrib/used_limits.py
index e00f0a9eb..5a90a9def 100644
--- a/nova/api/openstack/compute/contrib/used_limits.py
+++ b/nova/api/openstack/compute/contrib/used_limits.py
@@ -26,6 +26,8 @@ QUOTAS = quota.QUOTAS
XMLNS = "http://docs.openstack.org/compute/ext/used_limits/api/v1.1"
ALIAS = "os-used-limits"
authorize = extensions.soft_extension_authorizer('compute', 'used_limits')
+authorize_for_admin = extensions.extension_authorizer('compute',
+ 'used_limits_for_admin')
class UsedLimitsTemplate(xmlutil.TemplateBuilder):
@@ -37,6 +39,9 @@ class UsedLimitsTemplate(xmlutil.TemplateBuilder):
class UsedLimitsController(wsgi.Controller):
+ def __init__(self, ext_mgr):
+ self.ext_mgr = ext_mgr
+
@staticmethod
def _reserved(req):
try:
@@ -48,8 +53,8 @@ class UsedLimitsController(wsgi.Controller):
def index(self, req, resp_obj):
resp_obj.attach(xml=UsedLimitsTemplate())
context = req.environ['nova.context']
- quotas = QUOTAS.get_project_quotas(context, context.project_id,
- usages=True)
+ project_id = self._project_id(context, req)
+ quotas = QUOTAS.get_project_quotas(context, project_id, usages=True)
quota_map = {
'totalRAMUsed': 'ram',
'totalCoresUsed': 'cores',
@@ -66,6 +71,18 @@ class UsedLimitsController(wsgi.Controller):
resp_obj.obj['limits']['absolute'].update(used_limits)
+ def _project_id(self, context, req):
+ if self.ext_mgr.is_loaded('os-used-limits-for-admin'):
+ if 'tenant_id' in req.GET:
+ tenant_id = req.GET.get('tenant_id')
+ target = {
+ 'project_id': tenant_id,
+ 'user_id': context.user_id
+ }
+ authorize_for_admin(context, target=target)
+ return tenant_id
+ return context.project_id
+
class Used_limits(extensions.ExtensionDescriptor):
"""Provide data on limited resources that are being used."""
@@ -76,7 +93,7 @@ class Used_limits(extensions.ExtensionDescriptor):
updated = "2012-07-13T00:00:00+00:00"
def get_controller_extensions(self):
- controller = UsedLimitsController()
+ controller = UsedLimitsController(self.ext_mgr)
limits_ext = extensions.ControllerExtension(self, 'limits',
controller=controller)
return [limits_ext]
diff --git a/nova/api/openstack/compute/contrib/used_limits_for_admin.py b/nova/api/openstack/compute/contrib/used_limits_for_admin.py
new file mode 100644
index 000000000..a6ec9c002
--- /dev/null
+++ b/nova/api/openstack/compute/contrib/used_limits_for_admin.py
@@ -0,0 +1,27 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License
+
+from nova.api.openstack import extensions
+
+
+class Used_limits_for_admin(extensions.ExtensionDescriptor):
+ """Provide data to admin on limited resources used by other tenants."""
+
+ name = "UsedLimitsForAdmin"
+ alias = "os-used-limits-for-admin"
+ namespace = ("http://docs.openstack.org/compute/ext/used_limits_for_admin"
+ "/api/v1.1")
+ updated = "2013-05-02T00:00:00+00:00"
diff --git a/nova/api/openstack/compute/contrib/volumes.py b/nova/api/openstack/compute/contrib/volumes.py
index 3ede9e4a4..0c629f068 100644
--- a/nova/api/openstack/compute/contrib/volumes.py
+++ b/nova/api/openstack/compute/contrib/volumes.py
@@ -255,7 +255,7 @@ class VolumeController(wsgi.Controller):
availability_zone=availability_zone
)
except exception.InvalidInput as err:
- raise exc.HTTPBadRequest(explanation=str(err))
+ raise exc.HTTPBadRequest(explanation=err.format_message())
# TODO(vish): Instance should be None at db layer instead of
# trying to lazy load, but for now we turn it into
diff --git a/nova/api/openstack/compute/flavors.py b/nova/api/openstack/compute/flavors.py
index 744fe5e93..4da130e9b 100644
--- a/nova/api/openstack/compute/flavors.py
+++ b/nova/api/openstack/compute/flavors.py
@@ -85,7 +85,7 @@ class Controller(wsgi.Controller):
def show(self, req, id):
"""Return data about the given flavor id."""
try:
- flavor = flavors.get_instance_type_by_flavor_id(id)
+ flavor = flavors.get_flavor_by_flavor_id(id)
req.cache_db_flavor(flavor)
except exception.NotFound:
raise webob.exc.HTTPNotFound()
@@ -134,7 +134,7 @@ class Controller(wsgi.Controller):
msg = _('Invalid minDisk filter [%s]') % req.params['minDisk']
raise webob.exc.HTTPBadRequest(explanation=msg)
- limited_flavors = flavors.get_all_types(context, filters=filters)
+ limited_flavors = flavors.get_all_flavors(context, filters=filters)
flavors_list = limited_flavors.values()
sorted_flavors = sorted(flavors_list,
key=lambda item: item['flavorid'])
diff --git a/nova/api/openstack/compute/images.py b/nova/api/openstack/compute/images.py
index 4dba0a6c2..e0c4f7465 100644
--- a/nova/api/openstack/compute/images.py
+++ b/nova/api/openstack/compute/images.py
@@ -181,7 +181,7 @@ class Controller(wsgi.Controller):
images = self._image_service.detail(context, filters=filters,
**page_params)
except exception.Invalid as e:
- raise webob.exc.HTTPBadRequest(explanation=str(e))
+ raise webob.exc.HTTPBadRequest(explanation=e.format_message())
return self._view_builder.index(req, images)
@wsgi.serializers(xml=ImagesTemplate)
@@ -201,7 +201,7 @@ class Controller(wsgi.Controller):
images = self._image_service.detail(context, filters=filters,
**page_params)
except exception.Invalid as e:
- raise webob.exc.HTTPBadRequest(explanation=str(e))
+ raise webob.exc.HTTPBadRequest(explanation=e.format_message())
req.cache_db_items('images', images, 'id')
return self._view_builder.detail(req, images)
diff --git a/nova/api/openstack/compute/plugins/__init__.py b/nova/api/openstack/compute/plugins/__init__.py
index e69de29bb..f93f56513 100644
--- a/nova/api/openstack/compute/plugins/__init__.py
+++ b/nova/api/openstack/compute/plugins/__init__.py
@@ -0,0 +1,59 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+
+from nova import exception
+from nova.openstack.common import log as logging
+
+LOG = logging.getLogger(__name__)
+
+
+class LoadedExtensionInfo(object):
+ """Keep track of all loaded API extensions."""
+
+ def __init__(self):
+ self.extensions = {}
+
+ def register_extension(self, ext):
+ if not self._check_extension(ext):
+ return False
+
+ alias = ext.alias
+ LOG.audit(_("Loaded extension %s"), alias)
+
+ if alias in self.extensions:
+ raise exception.NovaException("Found duplicate extension: %s"
+ % alias)
+ self.extensions[alias] = ext
+ return True
+
+ def _check_extension(self, extension):
+ """Checks for required methods in extension objects."""
+ try:
+ LOG.debug(_('Ext name: %s'), extension.name)
+ LOG.debug(_('Ext alias: %s'), extension.alias)
+ LOG.debug(_('Ext description: %s'),
+ ' '.join(extension.__doc__.strip().split()))
+ LOG.debug(_('Ext namespace: %s'), extension.namespace)
+ LOG.debug(_('Ext version: %i'), extension.version)
+ except AttributeError as ex:
+ LOG.exception(_("Exception loading extension: %s"), unicode(ex))
+ return False
+
+ return True
+
+ def get_extensions(self):
+ return self.extensions
diff --git a/nova/api/openstack/compute/plugins/v3/consoles.py b/nova/api/openstack/compute/plugins/v3/consoles.py
new file mode 100644
index 000000000..d99395652
--- /dev/null
+++ b/nova/api/openstack/compute/plugins/v3/consoles.py
@@ -0,0 +1,144 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2010 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import webob
+from webob import exc
+
+from nova.api.openstack import extensions
+from nova.api.openstack import wsgi
+from nova.api.openstack import xmlutil
+from nova.console import api as console_api
+from nova import exception
+
+
+def _translate_keys(cons):
+ """Coerces a console instance into proper dictionary format."""
+ pool = cons['pool']
+ info = {'id': cons['id'],
+ 'console_type': pool['console_type']}
+ return dict(console=info)
+
+
+def _translate_detail_keys(cons):
+ """Coerces a console instance into proper dictionary format with detail."""
+ pool = cons['pool']
+ info = {'id': cons['id'],
+ 'console_type': pool['console_type'],
+ 'password': cons['password'],
+ 'instance_name': cons['instance_name'],
+ 'port': cons['port'],
+ 'host': pool['public_hostname']}
+ return dict(console=info)
+
+
+class ConsoleTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('console', selector='console')
+
+ id_elem = xmlutil.SubTemplateElement(root, 'id', selector='id')
+ id_elem.text = xmlutil.Selector()
+
+ port_elem = xmlutil.SubTemplateElement(root, 'port', selector='port')
+ port_elem.text = xmlutil.Selector()
+
+ host_elem = xmlutil.SubTemplateElement(root, 'host', selector='host')
+ host_elem.text = xmlutil.Selector()
+
+ passwd_elem = xmlutil.SubTemplateElement(root, 'password',
+ selector='password')
+ passwd_elem.text = xmlutil.Selector()
+
+ constype_elem = xmlutil.SubTemplateElement(root, 'console_type',
+ selector='console_type')
+ constype_elem.text = xmlutil.Selector()
+
+ return xmlutil.MasterTemplate(root, 1)
+
+
+class ConsolesTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('consoles')
+ console = xmlutil.SubTemplateElement(root, 'console',
+ selector='consoles')
+ console.append(ConsoleTemplate())
+
+ return xmlutil.MasterTemplate(root, 1)
+
+
+class ConsolesController(object):
+ """The Consoles controller for the OpenStack API."""
+
+ def __init__(self):
+ self.console_api = console_api.API()
+
+ @wsgi.serializers(xml=ConsolesTemplate)
+ def index(self, req, server_id):
+ """Returns a list of consoles for this instance."""
+ consoles = self.console_api.get_consoles(
+ req.environ['nova.context'],
+ server_id)
+ return dict(consoles=[_translate_keys(console)
+ for console in consoles])
+
+ def create(self, req, server_id):
+ """Creates a new console."""
+ self.console_api.create_console(
+ req.environ['nova.context'], server_id)
+
+ @wsgi.serializers(xml=ConsoleTemplate)
+ def show(self, req, server_id, id):
+ """Shows in-depth information on a specific console."""
+ try:
+ console = self.console_api.get_console(
+ req.environ['nova.context'],
+ server_id,
+ int(id))
+ except exception.NotFound:
+ raise exc.HTTPNotFound()
+ return _translate_detail_keys(console)
+
+ def delete(self, req, server_id, id):
+ """Deletes a console."""
+ try:
+ self.console_api.delete_console(req.environ['nova.context'],
+ server_id,
+ int(id))
+ except exception.NotFound:
+ raise exc.HTTPNotFound()
+ return webob.Response(status_int=202)
+
+
+class Consoles(extensions.V3APIExtensionBase):
+ """Consoles."""
+
+ name = "Consoles"
+ alias = "consoles"
+ namespace = "http://docs.openstack.org/compute/core/consoles/v3"
+ version = 1
+
+ def get_resources(self):
+ parent = {'member_name': 'server',
+ 'collection_name': 'servers'}
+ resources = [
+ extensions.ResourceExtension(
+ 'consoles', ConsolesController(), parent=parent,
+ member_name='console')]
+
+ return resources
+
+ def get_controller_extensions(self):
+ return []
diff --git a/nova/api/openstack/compute/plugins/v3/extension_info.py b/nova/api/openstack/compute/plugins/v3/extension_info.py
new file mode 100644
index 000000000..43b0551c7
--- /dev/null
+++ b/nova/api/openstack/compute/plugins/v3/extension_info.py
@@ -0,0 +1,105 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import webob.exc
+
+from nova.api.openstack import extensions
+from nova.api.openstack import wsgi
+from nova.api.openstack import xmlutil
+
+
+def make_ext(elem):
+ elem.set('name')
+ elem.set('namespace')
+ elem.set('alias')
+ elem.set('version')
+
+ desc = xmlutil.SubTemplateElement(elem, 'description')
+ desc.text = 'description'
+
+
+ext_nsmap = {None: xmlutil.XMLNS_COMMON_V10, 'atom': xmlutil.XMLNS_ATOM}
+
+
+class ExtensionTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('extension', selector='extension')
+ make_ext(root)
+ return xmlutil.MasterTemplate(root, 1, nsmap=ext_nsmap)
+
+
+class ExtensionsTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('extensions')
+ elem = xmlutil.SubTemplateElement(root, 'extension',
+ selector='extensions')
+ make_ext(elem)
+ return xmlutil.MasterTemplate(root, 1, nsmap=ext_nsmap)
+
+
+class ExtensionInfoController(object):
+
+ def __init__(self, extension_info):
+ self.extension_info = extension_info
+
+ def _translate(self, ext):
+ ext_data = {}
+ ext_data['name'] = ext.name
+ ext_data['alias'] = ext.alias
+ ext_data['description'] = ext.__doc__
+ ext_data['namespace'] = ext.namespace
+ ext_data['version'] = ext.version
+ return ext_data
+
+ @wsgi.serializers(xml=ExtensionsTemplate)
+ def index(self, req):
+
+ sorted_ext_list = sorted(
+ self.extension_info.get_extensions().iteritems())
+
+ extensions = []
+ for _alias, ext in sorted_ext_list:
+ extensions.append(self._translate(ext))
+ return dict(extensions=extensions)
+
+ @wsgi.serializers(xml=ExtensionTemplate)
+ def show(self, req, id):
+ try:
+ # NOTE(dprince): the extensions alias is used as the 'id' for show
+ ext = self.extension_info.get_extensions()[id]
+ except KeyError:
+ raise webob.exc.HTTPNotFound()
+
+ return dict(extension=self._translate(ext))
+
+
+class ExtensionInfo(extensions.V3APIExtensionBase):
+ """Extension information."""
+
+ name = "extensions"
+ alias = "extensions"
+ namespace = "http://docs.openstack.org/compute/core/extension_info/api/v3"
+ version = 1
+
+ def get_resources(self):
+ resources = [
+ extensions.ResourceExtension(
+ 'extensions', ExtensionInfoController(self.extension_info),
+ member_name='extension')]
+ return resources
+
+ def get_controller_extensions(self):
+ return []
diff --git a/nova/api/openstack/compute/plugins/v3/fixed_ips.py b/nova/api/openstack/compute/plugins/v3/fixed_ips.py
index dc22a83ea..e98b830bd 100644
--- a/nova/api/openstack/compute/plugins/v3/fixed_ips.py
+++ b/nova/api/openstack/compute/plugins/v3/fixed_ips.py
@@ -22,7 +22,9 @@ from nova import exception
from nova.openstack.common import log as logging
LOG = logging.getLogger(__name__)
-authorize = extensions.extension_authorizer('compute', 'fixed_ips')
+
+ALIAS = "os-fixed-ips"
+authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS)
class FixedIPController(object):
@@ -82,7 +84,7 @@ class FixedIPs(extensions.V3APIExtensionBase):
"""Fixed IPs support."""
name = "FixedIPs"
- alias = "os-fixed-ips"
+ alias = ALIAS
namespace = "http://docs.openstack.org/compute/ext/fixed_ips/api/v3"
version = 1
diff --git a/nova/api/openstack/compute/plugins/v3/ips.py b/nova/api/openstack/compute/plugins/v3/ips.py
new file mode 100644
index 000000000..2d9a4891d
--- /dev/null
+++ b/nova/api/openstack/compute/plugins/v3/ips.py
@@ -0,0 +1,116 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2011 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from webob import exc
+
+import nova
+from nova.api.openstack import common
+from nova.api.openstack.compute.views import addresses as view_addresses
+from nova.api.openstack import extensions
+from nova.api.openstack import wsgi
+from nova.api.openstack import xmlutil
+
+
+def make_network(elem):
+ elem.set('id', 0)
+
+ ip = xmlutil.SubTemplateElement(elem, 'ip', selector=1)
+ ip.set('version')
+ ip.set('addr')
+
+
+network_nsmap = {None: xmlutil.XMLNS_V11}
+
+
+class NetworkTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ sel = xmlutil.Selector(xmlutil.get_items, 0)
+ root = xmlutil.TemplateElement('network', selector=sel)
+ make_network(root)
+ return xmlutil.MasterTemplate(root, 1, nsmap=network_nsmap)
+
+
+class AddressesTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('addresses', selector='addresses')
+ elem = xmlutil.SubTemplateElement(root, 'network',
+ selector=xmlutil.get_items)
+ make_network(elem)
+ return xmlutil.MasterTemplate(root, 1, nsmap=network_nsmap)
+
+
+class IPsController(wsgi.Controller):
+ """The servers addresses API controller for the OpenStack API."""
+
+ _view_builder_class = view_addresses.ViewBuilder
+
+ def __init__(self, **kwargs):
+ super(IPsController, self).__init__(**kwargs)
+ self._compute_api = nova.compute.API()
+
+ def _get_instance(self, context, server_id):
+ try:
+ instance = self._compute_api.get(context, server_id)
+ except nova.exception.NotFound:
+ msg = _("Instance does not exist")
+ raise exc.HTTPNotFound(explanation=msg)
+ return instance
+
+ def create(self, req, server_id, body):
+ raise exc.HTTPNotImplemented()
+
+ def delete(self, req, server_id, id):
+ raise exc.HTTPNotImplemented()
+
+ @wsgi.serializers(xml=AddressesTemplate)
+ def index(self, req, server_id):
+ context = req.environ["nova.context"]
+ instance = self._get_instance(context, server_id)
+ networks = common.get_networks_for_instance(context, instance)
+ return self._view_builder.index(networks)
+
+ @wsgi.serializers(xml=NetworkTemplate)
+ def show(self, req, server_id, id):
+ context = req.environ["nova.context"]
+ instance = self._get_instance(context, server_id)
+ networks = common.get_networks_for_instance(context, instance)
+ if id not in networks:
+ msg = _("Instance is not a member of specified network")
+ raise exc.HTTPNotFound(explanation=msg)
+
+ return self._view_builder.show(networks[id], id)
+
+
+class IPs(extensions.V3APIExtensionBase):
+ """Server addresses."""
+
+ name = "ips"
+ alias = "ips"
+ namespace = "http://docs.openstack.org/compute/core/ips/v3"
+ version = 1
+
+ def get_resources(self):
+ parent = {'member_name': 'server',
+ 'collection_name': 'servers'}
+ resources = [
+ extensions.ResourceExtension(
+ 'ips', IPsController(), parent=parent, member_name='ip')]
+
+ return resources
+
+ def get_controller_extensions(self):
+ return []
diff --git a/nova/api/openstack/compute/plugins/v3/keypairs.py b/nova/api/openstack/compute/plugins/v3/keypairs.py
new file mode 100644
index 000000000..bf740641e
--- /dev/null
+++ b/nova/api/openstack/compute/plugins/v3/keypairs.py
@@ -0,0 +1,213 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2011 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Keypair management extension."""
+
+import webob
+import webob.exc
+
+from nova.api.openstack.compute import servers
+from nova.api.openstack import extensions
+from nova.api.openstack import wsgi
+from nova.api.openstack import xmlutil
+from nova.compute import api as compute_api
+from nova import exception
+
+
+ALIAS = 'os-keypairs'
+authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS)
+soft_authorize = extensions.soft_extension_authorizer('compute', 'v3:' + ALIAS)
+
+
+class KeypairTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ return xmlutil.MasterTemplate(xmlutil.make_flat_dict('keypair'), 1)
+
+
+class KeypairsTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('keypairs')
+ elem = xmlutil.make_flat_dict('keypair', selector='keypairs',
+ subselector='keypair')
+ root.append(elem)
+
+ return xmlutil.MasterTemplate(root, 1)
+
+
+class KeypairController(object):
+
+ """Keypair API controller for the OpenStack API."""
+ def __init__(self):
+ self.api = compute_api.KeypairAPI()
+
+ @wsgi.serializers(xml=KeypairTemplate)
+ def create(self, req, body):
+ """
+ Create or import keypair.
+
+ Sending name will generate a key and return private_key
+ and fingerprint.
+
+ You can send a public_key to add an existing ssh key
+
+ params: keypair object with:
+ name (required) - string
+ public_key (optional) - string
+ """
+
+ context = req.environ['nova.context']
+ authorize(context)
+
+ try:
+ params = body['keypair']
+ name = params['name']
+ except KeyError:
+ msg = _("Invalid request body")
+ raise webob.exc.HTTPBadRequest(explanation=msg)
+
+ try:
+ if 'public_key' in params:
+ keypair = self.api.import_key_pair(context,
+ context.user_id, name,
+ params['public_key'])
+ else:
+ keypair = self.api.create_key_pair(context, context.user_id,
+ name)
+
+ return {'keypair': keypair}
+
+ except exception.KeypairLimitExceeded:
+ msg = _("Quota exceeded, too many key pairs.")
+ raise webob.exc.HTTPRequestEntityTooLarge(
+ explanation=msg,
+ headers={'Retry-After': 0})
+ except exception.InvalidKeypair as exc:
+ raise webob.exc.HTTPBadRequest(explanation=exc.format_message())
+ except exception.KeyPairExists as exc:
+ raise webob.exc.HTTPConflict(explanation=exc.format_message())
+
+ def delete(self, req, id):
+ """
+ Delete a keypair with a given name
+ """
+ context = req.environ['nova.context']
+ authorize(context)
+ try:
+ self.api.delete_key_pair(context, context.user_id, id)
+ except exception.KeypairNotFound:
+ raise webob.exc.HTTPNotFound()
+ return webob.Response(status_int=202)
+
+ @wsgi.serializers(xml=KeypairTemplate)
+ def show(self, req, id):
+ """Return data for the given key name."""
+ context = req.environ['nova.context']
+ authorize(context)
+
+ try:
+ keypair = self.api.get_key_pair(context, context.user_id, id)
+ except exception.KeypairNotFound:
+ raise webob.exc.HTTPNotFound()
+ return {'keypair': keypair}
+
+ @wsgi.serializers(xml=KeypairsTemplate)
+ def index(self, req):
+ """
+ List of keypairs for a user
+ """
+ context = req.environ['nova.context']
+ authorize(context)
+ key_pairs = self.api.get_key_pairs(context, context.user_id)
+ rval = []
+ for key_pair in key_pairs:
+ rval.append({'keypair': {
+ 'name': key_pair['name'],
+ 'public_key': key_pair['public_key'],
+ 'fingerprint': key_pair['fingerprint'],
+ }})
+
+ return {'keypairs': rval}
+
+
+class ServerKeyNameTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('server')
+ root.set('key_name', 'key_name')
+ return xmlutil.SlaveTemplate(root, 1)
+
+
+class ServersKeyNameTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('servers')
+ elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
+ elem.set('key_name', 'key_name')
+ return xmlutil.SlaveTemplate(root, 1)
+
+
+class Controller(servers.Controller):
+
+ def _add_key_name(self, req, servers):
+ for server in servers:
+ db_server = req.get_db_instance(server['id'])
+ # server['id'] is guaranteed to be in the cache due to
+ # the core API adding it in its 'show'/'detail' methods.
+ server['key_name'] = db_server['key_name']
+
+ def _show(self, req, resp_obj):
+ if 'server' in resp_obj.obj:
+ resp_obj.attach(xml=ServerKeyNameTemplate())
+ server = resp_obj.obj['server']
+ self._add_key_name(req, [server])
+
+ @wsgi.extends
+ def show(self, req, resp_obj, id):
+ context = req.environ['nova.context']
+ if soft_authorize(context):
+ self._show(req, resp_obj)
+
+ @wsgi.extends
+ def detail(self, req, resp_obj):
+ context = req.environ['nova.context']
+ if 'servers' in resp_obj.obj and soft_authorize(context):
+ resp_obj.attach(xml=ServersKeyNameTemplate())
+ servers = resp_obj.obj['servers']
+ self._add_key_name(req, servers)
+
+
+class Keypairs(extensions.V3APIExtensionBase):
+ """Keypair Support."""
+
+ name = "Keypairs"
+ alias = ALIAS
+ namespace = "http://docs.openstack.org/compute/ext/keypairs/api/v3"
+ version = 1
+
+ def get_resources(self):
+ resources = [
+ extensions.ResourceExtension('os-keypairs',
+ KeypairController())]
+ return resources
+
+ def get_controller_extensions(self):
+ controller = Controller()
+ extension = extensions.ControllerExtension(self, 'servers', controller)
+ return [extension]
+
+ # use nova.api.extensions.server.extensions entry point to modify
+ # server create kwargs
+ def server_create(self, server_dict, create_kwargs):
+ create_kwargs['key_name'] = server_dict.get('key_name')
diff --git a/nova/api/openstack/compute/plugins/v3/servers.py b/nova/api/openstack/compute/plugins/v3/servers.py
new file mode 100644
index 000000000..b12988010
--- /dev/null
+++ b/nova/api/openstack/compute/plugins/v3/servers.py
@@ -0,0 +1,1528 @@
+# Copyright 2010 OpenStack Foundation
+# Copyright 2011 Piston Cloud Computing, Inc
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import base64
+import os
+import re
+import stevedore
+
+from oslo.config import cfg
+import webob
+from webob import exc
+
+from nova.api.openstack import common
+from nova.api.openstack.compute import ips
+from nova.api.openstack.compute.views import servers as views_servers
+from nova.api.openstack import extensions
+from nova.api.openstack import wsgi
+from nova.api.openstack import xmlutil
+from nova import compute
+from nova.compute import flavors
+from nova import exception
+from nova.openstack.common import importutils
+from nova.openstack.common import log as logging
+from nova.openstack.common.rpc import common as rpc_common
+from nova.openstack.common import strutils
+from nova.openstack.common import timeutils
+from nova.openstack.common import uuidutils
+from nova import utils
+
+
+CONF = cfg.CONF
+CONF.import_opt('enable_instance_password',
+ 'nova.api.openstack.compute.servers')
+CONF.import_opt('network_api_class', 'nova.network')
+CONF.import_opt('reclaim_instance_interval', 'nova.compute.manager')
+
+LOG = logging.getLogger(__name__)
+
+
+def make_fault(elem):
+ fault = xmlutil.SubTemplateElement(elem, 'fault', selector='fault')
+ fault.set('code')
+ fault.set('created')
+ msg = xmlutil.SubTemplateElement(fault, 'message')
+ msg.text = 'message'
+ det = xmlutil.SubTemplateElement(fault, 'details')
+ det.text = 'details'
+
+
+def make_server(elem, detailed=False):
+ elem.set('name')
+ elem.set('id')
+
+ if detailed:
+ elem.set('userId', 'user_id')
+ elem.set('tenantId', 'tenant_id')
+ elem.set('updated')
+ elem.set('created')
+ elem.set('hostId')
+ elem.set('accessIPv4')
+ elem.set('accessIPv6')
+ elem.set('status')
+ elem.set('progress')
+ elem.set('reservation_id')
+
+ # Attach image node
+ image = xmlutil.SubTemplateElement(elem, 'image', selector='image')
+ image.set('id')
+ xmlutil.make_links(image, 'links')
+
+ # Attach flavor node
+ flavor = xmlutil.SubTemplateElement(elem, 'flavor', selector='flavor')
+ flavor.set('id')
+ xmlutil.make_links(flavor, 'links')
+
+ # Attach fault node
+ make_fault(elem)
+
+ # Attach metadata node
+ elem.append(common.MetadataTemplate())
+
+ # Attach addresses node
+ elem.append(ips.AddressesTemplate())
+
+ xmlutil.make_links(elem, 'links')
+
+
+server_nsmap = {None: xmlutil.XMLNS_V11, 'atom': xmlutil.XMLNS_ATOM}
+
+
+class ServerTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('server', selector='server')
+ make_server(root, detailed=True)
+ return xmlutil.MasterTemplate(root, 1, nsmap=server_nsmap)
+
+
+class MinimalServersTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('servers')
+ elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
+ make_server(elem)
+ xmlutil.make_links(root, 'servers_links')
+ return xmlutil.MasterTemplate(root, 1, nsmap=server_nsmap)
+
+
+class ServersTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('servers')
+ elem = xmlutil.SubTemplateElement(root, 'server', selector='servers')
+ make_server(elem, detailed=True)
+ return xmlutil.MasterTemplate(root, 1, nsmap=server_nsmap)
+
+
+class ServerAdminPassTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('server')
+ root.set('adminPass')
+ return xmlutil.SlaveTemplate(root, 1, nsmap=server_nsmap)
+
+
+class ServerMultipleCreateTemplate(xmlutil.TemplateBuilder):
+ def construct(self):
+ root = xmlutil.TemplateElement('server')
+ root.set('reservation_id')
+ return xmlutil.MasterTemplate(root, 1, nsmap=server_nsmap)
+
+
+def FullServerTemplate():
+ master = ServerTemplate()
+ master.attach(ServerAdminPassTemplate())
+ return master
+
+
+class CommonDeserializer(wsgi.MetadataXMLDeserializer):
+ """Common deserializer to handle xml-formatted server create requests.
+
+ Handles standard server attributes as well as optional metadata
+ and personality attributes
+ """
+
+ metadata_deserializer = common.MetadataXMLDeserializer()
+
+ def _extract_personality(self, server_node):
+ """Marshal the personality attribute of a parsed request."""
+ node = self.find_first_child_named(server_node, "personality")
+ if node is not None:
+ personality = []
+ for file_node in self.find_children_named(node, "file"):
+ item = {}
+ if file_node.hasAttribute("path"):
+ item["path"] = file_node.getAttribute("path")
+ item["contents"] = self.extract_text(file_node)
+ personality.append(item)
+ return personality
+ else:
+ return None
+
+ def _extract_server(self, node):
+ """Marshal the server attribute of a parsed request."""
+ server = {}
+ server_node = self.find_first_child_named(node, 'server')
+
+ attributes = ["name", "imageRef", "flavorRef", "adminPass",
+ "accessIPv4", "accessIPv6", "key_name",
+ "availability_zone", "min_count", "max_count"]
+ for attr in attributes:
+ if server_node.getAttribute(attr):
+ server[attr] = server_node.getAttribute(attr)
+
+ res_id = server_node.getAttribute('return_reservation_id')
+ if res_id:
+ server['return_reservation_id'] = strutils.bool_from_string(res_id)
+
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an entry point when the OS-SCH-HNT extension is
+ # ported
+ #scheduler_hints = self._extract_scheduler_hints(server_node)
+ #if scheduler_hints:
+ # server['OS-SCH-HNT:scheduler_hints'] = scheduler_hints
+
+ metadata_node = self.find_first_child_named(server_node, "metadata")
+ if metadata_node is not None:
+ server["metadata"] = self.extract_metadata(metadata_node)
+
+ user_data_node = self.find_first_child_named(server_node, "user_data")
+ if user_data_node is not None:
+ server["user_data"] = self.extract_text(user_data_node)
+
+ personality = self._extract_personality(server_node)
+ if personality is not None:
+ server["personality"] = personality
+
+ networks = self._extract_networks(server_node)
+ if networks is not None:
+ server["networks"] = networks
+
+ security_groups = self._extract_security_groups(server_node)
+ if security_groups is not None:
+ server["security_groups"] = security_groups
+
+ # NOTE(vish): this is not namespaced in json, so leave it without a
+ # namespace for now
+ block_device_mapping = self._extract_block_device_mapping(server_node)
+ if block_device_mapping is not None:
+ server["block_device_mapping"] = block_device_mapping
+
+ # NOTE(vish): Support this incorrect version because it was in the code
+ # base for a while and we don't want to accidentally break
+ # anyone that might be using it.
+
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the disk_config
+ # extension is ported
+ # auto_disk_config = server_node.getAttribute('auto_disk_config')
+ #if auto_disk_config:
+ # server['OS-DCF:diskConfig'] = auto_disk_config
+
+ # auto_disk_config = server_node.getAttribute('OS-DCF:diskConfig')
+ #if auto_disk_config:
+ # server['OS-DCF:diskConfig'] = auto_disk_config
+
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the disk_config
+ # extension is ported
+ #config_drive = server_node.getAttribute('config_drive')
+ #if config_drive:
+ # server['config_drive'] = config_drive
+
+ return server
+
+ def _extract_block_device_mapping(self, server_node):
+ """Marshal the block_device_mapping node of a parsed request."""
+ node = self.find_first_child_named(server_node, "block_device_mapping")
+ if node:
+ block_device_mapping = []
+ for child in self.extract_elements(node):
+ if child.nodeName != "mapping":
+ continue
+ mapping = {}
+ attributes = ["volume_id", "snapshot_id", "device_name",
+ "virtual_name", "volume_size"]
+ for attr in attributes:
+ value = child.getAttribute(attr)
+ if value:
+ mapping[attr] = value
+ attributes = ["delete_on_termination", "no_device"]
+ for attr in attributes:
+ value = child.getAttribute(attr)
+ if value:
+ mapping[attr] = strutils.bool_from_string(value)
+ block_device_mapping.append(mapping)
+ return block_device_mapping
+ else:
+ return None
+
+ def _extract_scheduler_hints(self, server_node):
+ """Marshal the scheduler hints attribute of a parsed request."""
+ node = self.find_first_child_named_in_namespace(server_node,
+ "http://docs.openstack.org/compute/ext/scheduler-hints/api/v2",
+ "scheduler_hints")
+ if node:
+ scheduler_hints = {}
+ for child in self.extract_elements(node):
+ scheduler_hints.setdefault(child.nodeName, [])
+ value = self.extract_text(child).strip()
+ scheduler_hints[child.nodeName].append(value)
+ return scheduler_hints
+ else:
+ return None
+
+ def _extract_networks(self, server_node):
+ """Marshal the networks attribute of a parsed request."""
+ node = self.find_first_child_named(server_node, "networks")
+ if node is not None:
+ networks = []
+ for network_node in self.find_children_named(node,
+ "network"):
+ item = {}
+ if network_node.hasAttribute("uuid"):
+ item["uuid"] = network_node.getAttribute("uuid")
+ if network_node.hasAttribute("fixed_ip"):
+ item["fixed_ip"] = network_node.getAttribute("fixed_ip")
+ if network_node.hasAttribute("port"):
+ item["port"] = network_node.getAttribute("port")
+ networks.append(item)
+ return networks
+ else:
+ return None
+
+ def _extract_security_groups(self, server_node):
+ """Marshal the security_groups attribute of a parsed request."""
+ node = self.find_first_child_named(server_node, "security_groups")
+ if node is not None:
+ security_groups = []
+ for sg_node in self.find_children_named(node, "security_group"):
+ item = {}
+ name = self.find_attribute_or_element(sg_node, 'name')
+ if name:
+ item["name"] = name
+ security_groups.append(item)
+ return security_groups
+ else:
+ return None
+
+
+class ActionDeserializer(CommonDeserializer):
+ """Deserializer to handle xml-formatted server action requests.
+
+ Handles standard server attributes as well as optional metadata
+ and personality attributes
+ """
+
+ def default(self, string):
+ dom = xmlutil.safe_minidom_parse_string(string)
+ action_node = dom.childNodes[0]
+ action_name = action_node.tagName
+
+ action_deserializer = {
+ 'createImage': self._action_create_image,
+ 'changePassword': self._action_change_password,
+ 'reboot': self._action_reboot,
+ 'rebuild': self._action_rebuild,
+ 'resize': self._action_resize,
+ 'confirmResize': self._action_confirm_resize,
+ 'revertResize': self._action_revert_resize,
+ }.get(action_name, super(ActionDeserializer, self).default)
+
+ action_data = action_deserializer(action_node)
+
+ return {'body': {action_name: action_data}}
+
+ def _action_create_image(self, node):
+ return self._deserialize_image_action(node, ('name',))
+
+ def _action_change_password(self, node):
+ if not node.hasAttribute("adminPass"):
+ raise AttributeError("No adminPass was specified in request")
+ return {"adminPass": node.getAttribute("adminPass")}
+
+ def _action_reboot(self, node):
+ if not node.hasAttribute("type"):
+ raise AttributeError("No reboot type was specified in request")
+ return {"type": node.getAttribute("type")}
+
+ def _action_rebuild(self, node):
+ rebuild = {}
+ if node.hasAttribute("name"):
+ name = node.getAttribute("name")
+ if not name:
+ raise AttributeError("Name cannot be blank")
+ rebuild['name'] = name
+
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the disk_config
+ # extension is ported
+ # if node.hasAttribute("auto_disk_config"):
+ # rebuild['OS-DCF:diskConfig'] = node.getAttribute(
+ # "auto_disk_config")
+
+ # if node.hasAttribute("OS-DCF:diskConfig"):
+ # rebuild['OS-DCF:diskConfig'] = node.getAttribute(
+ # "OS-DCF:diskConfig")
+
+ metadata_node = self.find_first_child_named(node, "metadata")
+ if metadata_node is not None:
+ rebuild["metadata"] = self.extract_metadata(metadata_node)
+
+ personality = self._extract_personality(node)
+ if personality is not None:
+ rebuild["personality"] = personality
+
+ if not node.hasAttribute("imageRef"):
+ raise AttributeError("No imageRef was specified in request")
+ rebuild["imageRef"] = node.getAttribute("imageRef")
+
+ if node.hasAttribute("adminPass"):
+ rebuild["adminPass"] = node.getAttribute("adminPass")
+
+ if node.hasAttribute("accessIPv4"):
+ rebuild["accessIPv4"] = node.getAttribute("accessIPv4")
+
+ if node.hasAttribute("accessIPv6"):
+ rebuild["accessIPv6"] = node.getAttribute("accessIPv6")
+
+ return rebuild
+
+ def _action_resize(self, node):
+ resize = {}
+
+ if node.hasAttribute("flavorRef"):
+ resize["flavorRef"] = node.getAttribute("flavorRef")
+ else:
+ raise AttributeError("No flavorRef was specified in request")
+
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the disk_config
+ # extension is ported
+ # if node.hasAttribute("auto_disk_config"):
+ # resize['OS-DCF:diskConfig'] = node.getAttribute(
+ # "auto_disk_config")
+
+ # if node.hasAttribute("OS-DCF:diskConfig"):
+ # resize['OS-DCF:diskConfig'] = node.getAttribute(
+ # "OS-DCF:diskConfig")
+
+ return resize
+
+ def _action_confirm_resize(self, node):
+ return None
+
+ def _action_revert_resize(self, node):
+ return None
+
+ def _deserialize_image_action(self, node, allowed_attributes):
+ data = {}
+ for attribute in allowed_attributes:
+ value = node.getAttribute(attribute)
+ if value:
+ data[attribute] = value
+ metadata_node = self.find_first_child_named(node, 'metadata')
+ if metadata_node is not None:
+ metadata = self.metadata_deserializer.extract_metadata(
+ metadata_node)
+ data['metadata'] = metadata
+ return data
+
+
+class CreateDeserializer(CommonDeserializer):
+ """Deserializer to handle xml-formatted server create requests.
+
+ Handles standard server attributes as well as optional metadata
+ and personality attributes
+ """
+
+ def default(self, string):
+ """Deserialize an xml-formatted server create request."""
+ dom = xmlutil.safe_minidom_parse_string(string)
+ server = self._extract_server(dom)
+ return {'body': {'server': server}}
+
+
+class ServersController(wsgi.Controller):
+ """The Server API base controller class for the OpenStack API."""
+
+ EXTENSION_CREATE_NAMESPACE = 'nova.api.v3.extensions.server.create'
+ _view_builder_class = views_servers.ViewBuilder
+
+ @staticmethod
+ def _add_location(robj):
+ # Just in case...
+ if 'server' not in robj.obj:
+ return robj
+
+ link = filter(lambda l: l['rel'] == 'self',
+ robj.obj['server']['links'])
+ if link:
+ robj['Location'] = link[0]['href'].encode('utf-8')
+
+ # Convenience return
+ return robj
+
+ def __init__(self, **kwargs):
+ def _check_load_extension(ext):
+ if isinstance(ext.obj, extensions.V3APIExtensionBase):
+ # Filter out for the existence of server_create here
+ # rather than on every request. We don't have a new
+ # abstract base class to reduce duplication in the
+ # extensions as they may want to implement multiple
+ # server (and other) entry points
+ if hasattr(ext.obj, 'server_create'):
+ LOG.debug(_('server create extension %s detected'),
+ ext.obj.alias)
+ return True
+ else:
+ LOG.debug(
+ _('extension %s is missing server_create'), ext.obj)
+ return False
+ else:
+ return False
+
+ self.extension_info = kwargs.pop('extension_info')
+ super(ServersController, self).__init__(**kwargs)
+ self.compute_api = compute.API()
+ self.quantum_attempted = False
+
+ # Look for implmentation of extension point of server creation
+ self.create_extension_manager = \
+ stevedore.enabled.EnabledExtensionManager(
+ namespace=self.EXTENSION_CREATE_NAMESPACE,
+ check_func=_check_load_extension,
+ invoke_on_load=True,
+ invoke_kwds={"extension_info": self.extension_info})
+ if not list(self.create_extension_manager):
+ LOG.debug(_("Did not find any server create extensions"))
+
+ @wsgi.serializers(xml=MinimalServersTemplate)
+ def index(self, req):
+ """Returns a list of server names and ids for a given user."""
+ try:
+ servers = self._get_servers(req, is_detail=False)
+ except exception.Invalid as err:
+ raise exc.HTTPBadRequest(explanation=err.format_message())
+ return servers
+
+ @wsgi.serializers(xml=ServersTemplate)
+ def detail(self, req):
+ """Returns a list of server details for a given user."""
+ try:
+ servers = self._get_servers(req, is_detail=True)
+ except exception.Invalid as err:
+ raise exc.HTTPBadRequest(explanation=err.format_message())
+ return servers
+
+ def _add_instance_faults(self, ctxt, instances):
+ faults = self.compute_api.get_instance_faults(ctxt, instances)
+ if faults is not None:
+ for instance in instances:
+ faults_list = faults.get(instance['uuid'], [])
+ try:
+ instance['fault'] = faults_list[0]
+ except IndexError:
+ pass
+
+ return instances
+
+ def _get_servers(self, req, is_detail):
+ """Returns a list of servers, based on any search options specified."""
+
+ search_opts = {}
+ search_opts.update(req.GET)
+
+ context = req.environ['nova.context']
+ remove_invalid_options(context, search_opts,
+ self._get_server_search_options())
+
+ # Verify search by 'status' contains a valid status.
+ # Convert it to filter by vm_state for compute_api.
+ status = search_opts.pop('status', None)
+ if status is not None:
+ state = common.vm_state_from_status(status)
+ if state is None:
+ return {'servers': []}
+ search_opts['vm_state'] = state
+
+ if 'changes-since' in search_opts:
+ try:
+ parsed = timeutils.parse_isotime(search_opts['changes-since'])
+ except ValueError:
+ msg = _('Invalid changes-since value')
+ raise exc.HTTPBadRequest(explanation=msg)
+ search_opts['changes-since'] = parsed
+
+ # By default, compute's get_all() will return deleted instances.
+ # If an admin hasn't specified a 'deleted' search option, we need
+ # to filter out deleted instances by setting the filter ourselves.
+ # ... Unless 'changes-since' is specified, because 'changes-since'
+ # should return recently deleted images according to the API spec.
+
+ if 'deleted' not in search_opts:
+ if 'changes-since' not in search_opts:
+ # No 'changes-since', so we only want non-deleted servers
+ search_opts['deleted'] = False
+
+ if search_opts.get("vm_state") == "deleted":
+ if context.is_admin:
+ search_opts['deleted'] = True
+ else:
+ msg = _("Only administrators may list deleted instances")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ if 'all_tenants' not in search_opts:
+ if context.project_id:
+ search_opts['project_id'] = context.project_id
+ else:
+ search_opts['user_id'] = context.user_id
+
+ limit, marker = common.get_limit_and_marker(req)
+ try:
+ instance_list = self.compute_api.get_all(context,
+ search_opts=search_opts,
+ limit=limit,
+ marker=marker)
+ except exception.MarkerNotFound as e:
+ msg = _('marker [%s] not found') % marker
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.FlavorNotFound as e:
+ log_msg = _("Flavor '%s' could not be found ")
+ LOG.debug(log_msg, search_opts['flavor'])
+ instance_list = []
+
+ if is_detail:
+ self._add_instance_faults(context, instance_list)
+ response = self._view_builder.detail(req, instance_list)
+ else:
+ response = self._view_builder.index(req, instance_list)
+ req.cache_db_instances(instance_list)
+ return response
+
+ def _get_server(self, context, req, instance_uuid):
+ """Utility function for looking up an instance by uuid."""
+ try:
+ instance = self.compute_api.get(context, instance_uuid)
+ except exception.NotFound:
+ msg = _("Instance could not be found")
+ raise exc.HTTPNotFound(explanation=msg)
+ req.cache_db_instance(instance)
+ return instance
+
+ def _check_string_length(self, value, name, max_length=None):
+ try:
+ utils.check_string_length(value, name, min_length=1,
+ max_length=max_length)
+ except exception.InvalidInput as e:
+ raise exc.HTTPBadRequest(explanation=e.format_message())
+
+ def _validate_server_name(self, value):
+ self._check_string_length(value, 'Server name', max_length=255)
+
+ def _validate_device_name(self, value):
+ self._check_string_length(value, 'Device name', max_length=255)
+
+ if ' ' in value:
+ msg = _("Device name cannot include spaces.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ def _get_injected_files(self, personality):
+ """Create a list of injected files from the personality attribute.
+
+ At this time, injected_files must be formatted as a list of
+ (file_path, file_content) pairs for compatibility with the
+ underlying compute service.
+ """
+ injected_files = []
+
+ for item in personality:
+ try:
+ path = item['path']
+ contents = item['contents']
+ except KeyError as key:
+ expl = _('Bad personality format: missing %s') % key
+ raise exc.HTTPBadRequest(explanation=expl)
+ except TypeError:
+ expl = _('Bad personality format')
+ raise exc.HTTPBadRequest(explanation=expl)
+ if self._decode_base64(contents) is None:
+ expl = _('Personality content for %s cannot be decoded') % path
+ raise exc.HTTPBadRequest(explanation=expl)
+ injected_files.append((path, contents))
+ return injected_files
+
+ def _is_quantum_v2(self):
+ # NOTE(dprince): quantumclient is not a requirement
+ if self.quantum_attempted:
+ return self.have_quantum
+
+ try:
+ self.quantum_attempted = True
+ from nova.network.quantumv2 import api as quantum_api
+ self.have_quantum = issubclass(
+ importutils.import_class(CONF.network_api_class),
+ quantum_api.API)
+ except ImportError:
+ self.have_quantum = False
+
+ return self.have_quantum
+
+ def _get_requested_networks(self, requested_networks):
+ """Create a list of requested networks from the networks attribute."""
+ networks = []
+ for network in requested_networks:
+ try:
+ port_id = network.get('port', None)
+ if port_id:
+ network_uuid = None
+ if not self._is_quantum_v2():
+ # port parameter is only for quantum v2.0
+ msg = _("Unknown argment : port")
+ raise exc.HTTPBadRequest(explanation=msg)
+ if not uuidutils.is_uuid_like(port_id):
+ msg = _("Bad port format: port uuid is "
+ "not in proper format "
+ "(%s)") % port_id
+ raise exc.HTTPBadRequest(explanation=msg)
+ else:
+ network_uuid = network['uuid']
+
+ if not port_id and not uuidutils.is_uuid_like(network_uuid):
+ br_uuid = network_uuid.split('-', 1)[-1]
+ if not uuidutils.is_uuid_like(br_uuid):
+ msg = _("Bad networks format: network uuid is "
+ "not in proper format "
+ "(%s)") % network_uuid
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ #fixed IP address is optional
+ #if the fixed IP address is not provided then
+ #it will use one of the available IP address from the network
+ address = network.get('fixed_ip', None)
+ if address is not None and not utils.is_valid_ipv4(address):
+ msg = _("Invalid fixed IP address (%s)") % address
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ # For quantumv2, requestd_networks
+ # should be tuple of (network_uuid, fixed_ip, port_id)
+ if self._is_quantum_v2():
+ networks.append((network_uuid, address, port_id))
+ else:
+ # check if the network id is already present in the list,
+ # we don't want duplicate networks to be passed
+ # at the boot time
+ for id, ip in networks:
+ if id == network_uuid:
+ expl = (_("Duplicate networks"
+ " (%s) are not allowed") %
+ network_uuid)
+ raise exc.HTTPBadRequest(explanation=expl)
+ networks.append((network_uuid, address))
+ except KeyError as key:
+ expl = _('Bad network format: missing %s') % key
+ raise exc.HTTPBadRequest(explanation=expl)
+ except TypeError:
+ expl = _('Bad networks format')
+ raise exc.HTTPBadRequest(explanation=expl)
+
+ return networks
+
+ # NOTE(vish): Without this regex, b64decode will happily
+ # ignore illegal bytes in the base64 encoded
+ # data.
+ B64_REGEX = re.compile('^(?:[A-Za-z0-9+\/]{4})*'
+ '(?:[A-Za-z0-9+\/]{2}=='
+ '|[A-Za-z0-9+\/]{3}=)?$')
+
+ def _decode_base64(self, data):
+ data = re.sub(r'\s', '', data)
+ if not self.B64_REGEX.match(data):
+ return None
+ try:
+ return base64.b64decode(data)
+ except TypeError:
+ return None
+
+ def _validate_user_data(self, user_data):
+ """Check if the user_data is encoded properly."""
+ if not user_data:
+ return
+ if self._decode_base64(user_data) is None:
+ expl = _('Userdata content cannot be decoded')
+ raise exc.HTTPBadRequest(explanation=expl)
+
+ def _validate_access_ipv4(self, address):
+ if not utils.is_valid_ipv4(address):
+ expl = _('accessIPv4 is not proper IPv4 format')
+ raise exc.HTTPBadRequest(explanation=expl)
+
+ def _validate_access_ipv6(self, address):
+ if not utils.is_valid_ipv6(address):
+ expl = _('accessIPv6 is not proper IPv6 format')
+ raise exc.HTTPBadRequest(explanation=expl)
+
+ @wsgi.serializers(xml=ServerTemplate)
+ def show(self, req, id):
+ """Returns server details by server id."""
+ try:
+ context = req.environ['nova.context']
+ instance = self.compute_api.get(context, id)
+ req.cache_db_instance(instance)
+ self._add_instance_faults(context, [instance])
+ return self._view_builder.show(req, instance)
+ except exception.NotFound:
+ msg = _("Instance could not be found")
+ raise exc.HTTPNotFound(explanation=msg)
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=CreateDeserializer)
+ def create(self, req, body):
+ """Creates a new server for a given user."""
+ if not self.is_valid_body(body, 'server'):
+ raise exc.HTTPUnprocessableEntity()
+
+ context = req.environ['nova.context']
+ server_dict = body['server']
+ password = self._get_server_admin_password(server_dict)
+
+ if 'name' not in server_dict:
+ msg = _("Server name is not defined")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ name = server_dict['name']
+ self._validate_server_name(name)
+ name = name.strip()
+
+ image_uuid = self._image_from_req_data(body)
+
+ # Arguments to be passed to instance create function
+ create_kwargs = {}
+
+ # Query extensions which want to manipulate the keyword
+ # arguments.
+ # NOTE(cyeoh): This is the hook that extensions use
+ # to replace the extension specific code below.
+ # When the extensions are ported this will also result
+ # in some convenience function from this class being
+ # moved to the extension
+ if list(self.create_extension_manager):
+ self.create_extension_manager.map(self._create_extension_point,
+ server_dict, create_kwargs)
+
+ personality = server_dict.get('personality')
+ config_drive = None
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the config_drive
+ # extension is ported
+ # if self.ext_mgr.is_loaded('os-config-drive'):
+ # config_drive = server_dict.get('config_drive')
+
+ injected_files = []
+ if personality:
+ injected_files = self._get_injected_files(personality)
+
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the security groups
+ # extension is ported
+ sg_names = []
+ #if self.ext_mgr.is_loaded('os-security-groups'):
+ # security_groups = server_dict.get('security_groups')
+ # if security_groups is not None:
+ # sg_names = [sg['name'] for sg in security_groups
+ # if sg.get('name')]
+ if not sg_names:
+ sg_names.append('default')
+
+ sg_names = list(set(sg_names))
+
+ requested_networks = None
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the os-networks
+ # extension is ported. Currently reworked
+ # to take into account _is_quantum_v2
+ #if (self.ext_mgr.is_loaded('os-networks')
+ # or self._is_quantum_v2()):
+ # requested_networks = server_dict.get('networks')
+
+ if self._is_quantum_v2():
+ requested_networks = server_dict.get('networks')
+ if requested_networks is not None:
+ requested_networks = self._get_requested_networks(
+ requested_networks)
+
+ (access_ip_v4, ) = server_dict.get('accessIPv4'),
+ if access_ip_v4 is not None:
+ self._validate_access_ipv4(access_ip_v4)
+
+ (access_ip_v6, ) = server_dict.get('accessIPv6'),
+ if access_ip_v6 is not None:
+ self._validate_access_ipv6(access_ip_v6)
+
+ try:
+ flavor_id = self._flavor_id_from_req_data(body)
+ except ValueError as error:
+ msg = _("Invalid flavorRef provided.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ user_data = None
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the os-user-data
+ # extension is ported
+ #if self.ext_mgr.is_loaded('os-user-data'):
+ # user_data = server_dict.get('user_data')
+ #self._validate_user_data(user_data)
+
+ availability_zone = None
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the
+ # os-availability-zone extension is ported
+ #if self.ext_mgr.is_loaded('os-availability-zone'):
+ # availability_zone = server_dict.get('availability_zone')
+
+ block_device_mapping = None
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the os-volumes
+ # extension is ported
+ #if self.ext_mgr.is_loaded('os-volumes'):
+ # block_device_mapping = server_dict.get('block_device_mapping', [])
+ # for bdm in block_device_mapping:
+ # self._validate_device_name(bdm["device_name"])
+ # if 'delete_on_termination' in bdm:
+ # bdm['delete_on_termination'] = strutils.bool_from_string(
+ # bdm['delete_on_termination'])
+
+ ret_resv_id = False
+ # min_count and max_count are optional. If they exist, they may come
+ # in as strings. Verify that they are valid integers and > 0.
+ # Also, we want to default 'min_count' to 1, and default
+ # 'max_count' to be 'min_count'.
+ min_count = 1
+ max_count = 1
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the os-multiple-create
+ # extension is ported
+ #if self.ext_mgr.is_loaded('os-multiple-create'):
+ # ret_resv_id = server_dict.get('return_reservation_id', False)
+ # min_count = server_dict.get('min_count', 1)
+ # max_count = server_dict.get('max_count', min_count)
+
+ try:
+ min_count = int(str(min_count))
+ except ValueError:
+ msg = _('min_count must be an integer value')
+ raise exc.HTTPBadRequest(explanation=msg)
+ if min_count < 1:
+ msg = _('min_count must be > 0')
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ try:
+ max_count = int(str(max_count))
+ except ValueError:
+ msg = _('max_count must be an integer value')
+ raise exc.HTTPBadRequest(explanation=msg)
+ if max_count < 1:
+ msg = _('max_count must be > 0')
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ if min_count > max_count:
+ msg = _('min_count must be <= max_count')
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ auto_disk_config = False
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the OS-DCF extension is
+ # ported
+ #if self.ext_mgr.is_loaded('OS-DCF'):
+ # auto_disk_config = server_dict.get('auto_disk_config')
+
+ scheduler_hints = {}
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with an extension point when the scheduler hints
+ # extension is ported
+ #if self.ext_mgr.is_loaded('OS-SCH-HNT'):
+ # scheduler_hints = server_dict.get('scheduler_hints', {})
+
+ try:
+ inst_type = flavors.get_flavor_by_flavor_id(
+ flavor_id, read_deleted="no")
+
+ (instances, resv_id) = self.compute_api.create(context,
+ inst_type,
+ image_uuid,
+ display_name=name,
+ display_description=name,
+ metadata=server_dict.get('metadata', {}),
+ access_ip_v4=access_ip_v4,
+ access_ip_v6=access_ip_v6,
+ injected_files=injected_files,
+ admin_password=password,
+ min_count=min_count,
+ max_count=max_count,
+ requested_networks=requested_networks,
+ security_group=sg_names,
+ user_data=user_data,
+ availability_zone=availability_zone,
+ config_drive=config_drive,
+ block_device_mapping=block_device_mapping,
+ auto_disk_config=auto_disk_config,
+ scheduler_hints=scheduler_hints,
+ **create_kwargs)
+ except exception.QuotaError as error:
+ raise exc.HTTPRequestEntityTooLarge(
+ explanation=error.format_message(),
+ headers={'Retry-After': 0})
+ except exception.InvalidMetadataSize as error:
+ raise exc.HTTPRequestEntityTooLarge(
+ explanation=error.format_message())
+ except exception.ImageNotFound as error:
+ msg = _("Can not find requested image")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.FlavorNotFound as error:
+ msg = _("Invalid flavorRef provided.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.KeypairNotFound as error:
+ msg = _("Invalid key_name provided.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except rpc_common.RemoteError as err:
+ msg = "%(err_type)s: %(err_msg)s" % {'err_type': err.exc_type,
+ 'err_msg': err.value}
+ raise exc.HTTPBadRequest(explanation=msg)
+ except UnicodeDecodeError as error:
+ msg = "UnicodeError: %s" % unicode(error)
+ raise exc.HTTPBadRequest(explanation=msg)
+ except (exception.ImageNotActive,
+ exception.InstanceTypeDiskTooSmall,
+ exception.InstanceTypeMemoryTooSmall,
+ exception.InstanceTypeNotFound,
+ exception.InvalidMetadata,
+ exception.InvalidRequest,
+ exception.SecurityGroupNotFound) as error:
+ raise exc.HTTPBadRequest(explanation=error.format_message())
+
+ # If the caller wanted a reservation_id, return it
+ if ret_resv_id:
+ return wsgi.ResponseObject({'reservation_id': resv_id},
+ xml=ServerMultipleCreateTemplate)
+
+ req.cache_db_instances(instances)
+ server = self._view_builder.create(req, instances[0])
+
+ if '_is_precooked' in server['server'].keys():
+ del server['server']['_is_precooked']
+ else:
+ if CONF.enable_instance_password:
+ server['server']['adminPass'] = password
+
+ robj = wsgi.ResponseObject(server)
+
+ return self._add_location(robj)
+
+ def _create_extension_point(self, ext, server_dict, create_kwargs):
+ handler = ext.obj
+ LOG.debug(_("Running _create_extension_point for %s"), ext.obj)
+
+ handler.server_create(server_dict, create_kwargs)
+
+ def _delete(self, context, req, instance_uuid):
+ instance = self._get_server(context, req, instance_uuid)
+ if CONF.reclaim_instance_interval:
+ self.compute_api.soft_delete(context, instance)
+ else:
+ self.compute_api.delete(context, instance)
+
+ @wsgi.serializers(xml=ServerTemplate)
+ def update(self, req, id, body):
+ """Update server then pass on to version-specific controller."""
+ if not self.is_valid_body(body, 'server'):
+ raise exc.HTTPUnprocessableEntity()
+
+ ctxt = req.environ['nova.context']
+ update_dict = {}
+
+ if 'name' in body['server']:
+ name = body['server']['name']
+ self._validate_server_name(name)
+ update_dict['display_name'] = name.strip()
+
+ if 'accessIPv4' in body['server']:
+ access_ipv4 = body['server']['accessIPv4']
+ if access_ipv4 is None:
+ access_ipv4 = ''
+ if access_ipv4:
+ self._validate_access_ipv4(access_ipv4)
+ update_dict['access_ip_v4'] = access_ipv4.strip()
+
+ if 'accessIPv6' in body['server']:
+ access_ipv6 = body['server']['accessIPv6']
+ if access_ipv6 is None:
+ access_ipv6 = ''
+ if access_ipv6:
+ self._validate_access_ipv6(access_ipv6)
+ update_dict['access_ip_v6'] = access_ipv6.strip()
+
+ if 'auto_disk_config' in body['server']:
+ auto_disk_config = strutils.bool_from_string(
+ body['server']['auto_disk_config'])
+ update_dict['auto_disk_config'] = auto_disk_config
+
+ if 'hostId' in body['server']:
+ msg = _("HostId cannot be updated.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ if 'personality' in body['server']:
+ msg = _("Personality cannot be updated.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ try:
+ instance = self.compute_api.get(ctxt, id)
+ req.cache_db_instance(instance)
+ self.compute_api.update(ctxt, instance, **update_dict)
+ except exception.NotFound:
+ msg = _("Instance could not be found")
+ raise exc.HTTPNotFound(explanation=msg)
+
+ instance.update(update_dict)
+
+ self._add_instance_faults(ctxt, [instance])
+ return self._view_builder.show(req, instance)
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=ActionDeserializer)
+ @wsgi.action('confirmResize')
+ def _action_confirm_resize(self, req, id, body):
+ context = req.environ['nova.context']
+ instance = self._get_server(context, req, id)
+ try:
+ self.compute_api.confirm_resize(context, instance)
+ except exception.MigrationNotFound:
+ msg = _("Instance has not been resized.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.InstanceInvalidState as state_error:
+ common.raise_http_conflict_for_instance_invalid_state(state_error,
+ 'confirmResize')
+ return exc.HTTPNoContent()
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=ActionDeserializer)
+ @wsgi.action('revertResize')
+ def _action_revert_resize(self, req, id, body):
+ context = req.environ['nova.context']
+ instance = self._get_server(context, req, id)
+ try:
+ self.compute_api.revert_resize(context, instance)
+ except exception.MigrationNotFound:
+ msg = _("Instance has not been resized.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.InstanceTypeNotFound:
+ msg = _("Flavor used by the instance could not be found.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.InstanceInvalidState as state_error:
+ common.raise_http_conflict_for_instance_invalid_state(state_error,
+ 'revertResize')
+ return webob.Response(status_int=202)
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=ActionDeserializer)
+ @wsgi.action('reboot')
+ def _action_reboot(self, req, id, body):
+ if 'reboot' in body and 'type' in body['reboot']:
+ valid_reboot_types = ['HARD', 'SOFT']
+ reboot_type = body['reboot']['type'].upper()
+ if not valid_reboot_types.count(reboot_type):
+ msg = _("Argument 'type' for reboot is not HARD or SOFT")
+ LOG.error(msg)
+ raise exc.HTTPBadRequest(explanation=msg)
+ else:
+ msg = _("Missing argument 'type' for reboot")
+ LOG.error(msg)
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ context = req.environ['nova.context']
+ instance = self._get_server(context, req, id)
+
+ try:
+ self.compute_api.reboot(context, instance, reboot_type)
+ except exception.InstanceInvalidState as state_error:
+ common.raise_http_conflict_for_instance_invalid_state(state_error,
+ 'reboot')
+ return webob.Response(status_int=202)
+
+ def _resize(self, req, instance_id, flavor_id, **kwargs):
+ """Begin the resize process with given instance/flavor."""
+ context = req.environ["nova.context"]
+ instance = self._get_server(context, req, instance_id)
+
+ try:
+ self.compute_api.resize(context, instance, flavor_id, **kwargs)
+ except exception.FlavorNotFound:
+ msg = _("Unable to locate requested flavor.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.CannotResizeToSameFlavor:
+ msg = _("Resize requires a flavor change.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.InstanceInvalidState as state_error:
+ common.raise_http_conflict_for_instance_invalid_state(state_error,
+ 'resize')
+ except exception.ImageNotAuthorized as image_error:
+ msg = _("You are not authorized to access the image "
+ "the instance was started with.")
+ raise exc.HTTPUnauthorized(explanation=msg)
+ except exception.ImageNotFound as image_error:
+ msg = _("Image that the instance was started "
+ "with could not be found.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.Invalid:
+ msg = _("Invalid instance image.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ return webob.Response(status_int=202)
+
+ @wsgi.response(204)
+ def delete(self, req, id):
+ """Destroys a server."""
+ try:
+ self._delete(req.environ['nova.context'], req, id)
+ except exception.NotFound:
+ msg = _("Instance could not be found")
+ raise exc.HTTPNotFound(explanation=msg)
+ except exception.InstanceInvalidState as state_error:
+ common.raise_http_conflict_for_instance_invalid_state(state_error,
+ 'delete')
+
+ def _image_ref_from_req_data(self, data):
+ try:
+ return unicode(data['server']['imageRef'])
+ except (TypeError, KeyError):
+ msg = _("Missing imageRef attribute")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ def _image_uuid_from_href(self, image_href):
+ # If the image href was generated by nova api, strip image_href
+ # down to an id and use the default glance connection params
+ image_uuid = image_href.split('/').pop()
+
+ if not uuidutils.is_uuid_like(image_uuid):
+ msg = _("Invalid imageRef provided.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ return image_uuid
+
+ def _image_from_req_data(self, data):
+ """
+ Get image data from the request or raise appropriate
+ exceptions
+
+ If no image is supplied - checks to see if there is
+ block devices set and proper extesions loaded.
+ """
+ image_ref = data['server'].get('imageRef')
+ bdm = data['server'].get('block_device_mapping')
+
+ # TODO(cyeoh): bp v3-api-core-as-extensions
+ # Replace with extension point. For the moment
+ # with no ep, assume os-volumes is not present
+ #if not image_ref and bdm and self.ext_mgr.is_loaded('os-volumes'):
+ # return ''
+ #else:
+ # image_href = self._image_ref_from_req_data(data)
+ # image_uuid = self._image_uuid_from_href(image_href)
+ # return image_uuid
+ image_href = self._image_ref_from_req_data(data)
+ image_uuid = self._image_uuid_from_href(image_href)
+ return image_uuid
+
+ def _flavor_id_from_req_data(self, data):
+ try:
+ flavor_ref = data['server']['flavorRef']
+ except (TypeError, KeyError):
+ msg = _("Missing flavorRef attribute")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ return common.get_id_from_href(flavor_ref)
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=ActionDeserializer)
+ @wsgi.action('changePassword')
+ def _action_change_password(self, req, id, body):
+ context = req.environ['nova.context']
+ if (not 'changePassword' in body
+ or 'adminPass' not in body['changePassword']):
+ msg = _("No adminPass was specified")
+ raise exc.HTTPBadRequest(explanation=msg)
+ password = body['changePassword']['adminPass']
+ if not isinstance(password, basestring):
+ msg = _("Invalid adminPass")
+ raise exc.HTTPBadRequest(explanation=msg)
+ server = self._get_server(context, req, id)
+ try:
+ self.compute_api.set_admin_password(context, server, password)
+ except NotImplementedError:
+ msg = _("Unable to set password on instance")
+ raise exc.HTTPNotImplemented(explanation=msg)
+ return webob.Response(status_int=202)
+
+ def _validate_metadata(self, metadata):
+ """Ensure that we can work with the metadata given."""
+ try:
+ metadata.iteritems()
+ except AttributeError:
+ msg = _("Unable to parse metadata key/value pairs.")
+ LOG.debug(msg)
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=ActionDeserializer)
+ @wsgi.action('resize')
+ def _action_resize(self, req, id, body):
+ """Resizes a given instance to the flavor size requested."""
+ try:
+ flavor_ref = str(body["resize"]["flavorRef"])
+ if not flavor_ref:
+ msg = _("Resize request has invalid 'flavorRef' attribute.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except (KeyError, TypeError):
+ msg = _("Resize requests require 'flavorRef' attribute.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ kwargs = {}
+ if 'auto_disk_config' in body['resize']:
+ kwargs['auto_disk_config'] = body['resize']['auto_disk_config']
+
+ return self._resize(req, id, flavor_ref, **kwargs)
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=ActionDeserializer)
+ @wsgi.action('rebuild')
+ def _action_rebuild(self, req, id, body):
+ """Rebuild an instance with the given attributes."""
+ try:
+ body = body['rebuild']
+ except (KeyError, TypeError):
+ msg = _('Invalid request body')
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ try:
+ image_href = body["imageRef"]
+ except (KeyError, TypeError):
+ msg = _("Could not parse imageRef from request.")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ image_href = self._image_uuid_from_href(image_href)
+
+ try:
+ password = body['adminPass']
+ except (KeyError, TypeError):
+ password = utils.generate_password()
+
+ context = req.environ['nova.context']
+ instance = self._get_server(context, req, id)
+
+ attr_map = {
+ 'personality': 'files_to_inject',
+ 'name': 'display_name',
+ 'accessIPv4': 'access_ip_v4',
+ 'accessIPv6': 'access_ip_v6',
+ 'metadata': 'metadata',
+ 'auto_disk_config': 'auto_disk_config',
+ }
+
+ if 'accessIPv4' in body:
+ self._validate_access_ipv4(body['accessIPv4'])
+
+ if 'accessIPv6' in body:
+ self._validate_access_ipv6(body['accessIPv6'])
+
+ if 'name' in body:
+ self._validate_server_name(body['name'])
+
+ kwargs = {}
+
+ for request_attribute, instance_attribute in attr_map.items():
+ try:
+ kwargs[instance_attribute] = body[request_attribute]
+ except (KeyError, TypeError):
+ pass
+
+ self._validate_metadata(kwargs.get('metadata', {}))
+
+ if 'files_to_inject' in kwargs:
+ personality = kwargs['files_to_inject']
+ kwargs['files_to_inject'] = self._get_injected_files(personality)
+
+ try:
+ self.compute_api.rebuild(context,
+ instance,
+ image_href,
+ password,
+ **kwargs)
+ except exception.InstanceInvalidState as state_error:
+ common.raise_http_conflict_for_instance_invalid_state(state_error,
+ 'rebuild')
+ except exception.InstanceNotFound:
+ msg = _("Instance could not be found")
+ raise exc.HTTPNotFound(explanation=msg)
+ except exception.InvalidMetadataSize as error:
+ raise exc.HTTPRequestEntityTooLarge(
+ explanation=error.format_message())
+ except exception.ImageNotFound:
+ msg = _("Cannot find image for rebuild")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except (exception.ImageNotActive,
+ exception.InstanceTypeDiskTooSmall,
+ exception.InstanceTypeMemoryTooSmall,
+ exception.InvalidMetadata) as error:
+ raise exc.HTTPBadRequest(explanation=error.format_message())
+
+ instance = self._get_server(context, req, id)
+
+ self._add_instance_faults(context, [instance])
+ view = self._view_builder.show(req, instance)
+
+ # Add on the adminPass attribute since the view doesn't do it
+ # unless instance passwords are disabled
+ if CONF.enable_instance_password:
+ view['server']['adminPass'] = password
+
+ robj = wsgi.ResponseObject(view)
+ return self._add_location(robj)
+
+ @wsgi.response(202)
+ @wsgi.serializers(xml=FullServerTemplate)
+ @wsgi.deserializers(xml=ActionDeserializer)
+ @wsgi.action('createImage')
+ @common.check_snapshots_enabled
+ def _action_create_image(self, req, id, body):
+ """Snapshot a server instance."""
+ context = req.environ['nova.context']
+ entity = body.get("createImage", {})
+
+ image_name = entity.get("name")
+
+ if not image_name:
+ msg = _("createImage entity requires name attribute")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ props = {}
+ metadata = entity.get('metadata', {})
+ common.check_img_metadata_properties_quota(context, metadata)
+ try:
+ props.update(metadata)
+ except ValueError:
+ msg = _("Invalid metadata")
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ instance = self._get_server(context, req, id)
+
+ bdms = self.compute_api.get_instance_bdms(context, instance)
+
+ try:
+ if self.compute_api.is_volume_backed_instance(context, instance,
+ bdms):
+ img = instance['image_ref']
+ src_image = self.compute_api.image_service.show(context, img)
+ image_meta = dict(src_image)
+
+ image = self.compute_api.snapshot_volume_backed(
+ context,
+ instance,
+ image_meta,
+ image_name,
+ extra_properties=props)
+ else:
+ image = self.compute_api.snapshot(context,
+ instance,
+ image_name,
+ extra_properties=props)
+ except exception.InstanceInvalidState as state_error:
+ common.raise_http_conflict_for_instance_invalid_state(state_error,
+ 'createImage')
+ except exception.Invalid as err:
+ raise exc.HTTPBadRequest(explanation=err.format_message())
+
+ # build location of newly-created image entity
+ image_id = str(image['id'])
+ image_ref = os.path.join(req.application_url,
+ context.project_id,
+ 'images',
+ image_id)
+
+ resp = webob.Response(status_int=202)
+ resp.headers['Location'] = image_ref
+ return resp
+
+ def _get_server_admin_password(self, server):
+ """Determine the admin password for a server on creation."""
+ try:
+ password = server['adminPass']
+ self._validate_admin_password(password)
+ except KeyError:
+ password = utils.generate_password()
+ except ValueError:
+ raise exc.HTTPBadRequest(explanation=_("Invalid adminPass"))
+
+ return password
+
+ def _validate_admin_password(self, password):
+ if not isinstance(password, basestring):
+ raise ValueError()
+
+ def _get_server_search_options(self):
+ """Return server search options allowed by non-admin."""
+ return ('reservation_id', 'name', 'status', 'image', 'flavor',
+ 'ip', 'changes-since', 'all_tenants')
+
+
+def remove_invalid_options(context, search_options, allowed_search_options):
+ """Remove search options that are not valid for non-admin API/context."""
+ if context.is_admin:
+ # Allow all options
+ return
+ # Otherwise, strip out all unknown options
+ unknown_options = [opt for opt in search_options
+ if opt not in allowed_search_options]
+ LOG.debug(_("Removing options '%s' from query"),
+ ", ".join(unknown_options))
+ for opt in unknown_options:
+ search_options.pop(opt, None)
+
+
+class Servers(extensions.V3APIExtensionBase):
+ """Servers."""
+
+ name = "Servers"
+ alias = "servers"
+ namespace = "http://docs.openstack.org/compute/core/servers/v3"
+ version = 1
+
+ def get_resources(self):
+ member_actions = {'action': 'POST'}
+ collection_actions = {'detail': 'GET'}
+ resources = [
+ extensions.ResourceExtension(
+ 'servers',
+ ServersController(extension_info=self.extension_info),
+ member_name='server', collection_actions=collection_actions,
+ member_actions=member_actions)]
+
+ return resources
+
+ def get_controller_extensions(self):
+ return []
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py
index 44d8dce3b..67d64127a 100644
--- a/nova/api/openstack/compute/servers.py
+++ b/nova/api/openstack/compute/servers.py
@@ -471,7 +471,7 @@ class Controller(wsgi.Controller):
try:
servers = self._get_servers(req, is_detail=False)
except exception.Invalid as err:
- raise exc.HTTPBadRequest(explanation=str(err))
+ raise exc.HTTPBadRequest(explanation=err.format_message())
return servers
@wsgi.serializers(xml=ServersTemplate)
@@ -480,7 +480,7 @@ class Controller(wsgi.Controller):
try:
servers = self._get_servers(req, is_detail=True)
except exception.Invalid as err:
- raise exc.HTTPBadRequest(explanation=str(err))
+ raise exc.HTTPBadRequest(explanation=err.format_message())
return servers
def _add_instance_faults(self, ctxt, instances):
@@ -583,7 +583,7 @@ class Controller(wsgi.Controller):
utils.check_string_length(value, name, min_length=1,
max_length=max_length)
except exception.InvalidInput as e:
- raise exc.HTTPBadRequest(explanation=str(e))
+ raise exc.HTTPBadRequest(explanation=e.format_message())
def _validate_server_name(self, value):
self._check_string_length(value, 'Server name', max_length=255)
@@ -791,6 +791,9 @@ class Controller(wsgi.Controller):
requested_networks = server_dict.get('networks')
if requested_networks is not None:
+ if not isinstance(requested_networks, list):
+ expl = _('Bad networks format')
+ raise exc.HTTPBadRequest(explanation=expl)
requested_networks = self._get_requested_networks(
requested_networks)
@@ -874,7 +877,7 @@ class Controller(wsgi.Controller):
scheduler_hints = server_dict.get('scheduler_hints', {})
try:
- _get_inst_type = flavors.get_instance_type_by_flavor_id
+ _get_inst_type = flavors.get_flavor_by_flavor_id
inst_type = _get_inst_type(flavor_id, read_deleted="no")
(instances, resv_id) = self.compute_api.create(context,
@@ -902,32 +905,18 @@ class Controller(wsgi.Controller):
raise exc.HTTPRequestEntityTooLarge(
explanation=error.format_message(),
headers={'Retry-After': 0})
- except exception.InstanceTypeMemoryTooSmall as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
- except exception.InstanceTypeNotFound as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
- except exception.InstanceTypeDiskTooSmall as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
- except exception.InvalidMetadata as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
except exception.InvalidMetadataSize as error:
raise exc.HTTPRequestEntityTooLarge(
explanation=error.format_message())
- except exception.InvalidRequest as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
except exception.ImageNotFound as error:
msg = _("Can not find requested image")
raise exc.HTTPBadRequest(explanation=msg)
- except exception.ImageNotActive as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
except exception.FlavorNotFound as error:
msg = _("Invalid flavorRef provided.")
raise exc.HTTPBadRequest(explanation=msg)
except exception.KeypairNotFound as error:
msg = _("Invalid key_name provided.")
raise exc.HTTPBadRequest(explanation=msg)
- except exception.SecurityGroupNotFound as error:
- raise exc.HTTPBadRequest(explanation=error.format_message())
except rpc_common.RemoteError as err:
msg = "%(err_type)s: %(err_msg)s" % {'err_type': err.exc_type,
'err_msg': err.value}
@@ -935,7 +924,14 @@ class Controller(wsgi.Controller):
except UnicodeDecodeError as error:
msg = "UnicodeError: %s" % unicode(error)
raise exc.HTTPBadRequest(explanation=msg)
- # Let the caller deal with unhandled exceptions.
+ except (exception.ImageNotActive,
+ exception.InstanceTypeDiskTooSmall,
+ exception.InstanceTypeMemoryTooSmall,
+ exception.InstanceTypeNotFound,
+ exception.InvalidMetadata,
+ exception.InvalidRequest,
+ exception.SecurityGroupNotFound) as error:
+ raise exc.HTTPBadRequest(explanation=error.format_message())
# If the caller wanted a reservation_id, return it
if ret_resv_id:
@@ -1098,6 +1094,17 @@ class Controller(wsgi.Controller):
except exception.InstanceInvalidState as state_error:
common.raise_http_conflict_for_instance_invalid_state(state_error,
'resize')
+ except exception.ImageNotAuthorized as image_error:
+ msg = _("You are not authorized to access the image "
+ "the instance was started with.")
+ raise exc.HTTPUnauthorized(explanation=msg)
+ except exception.ImageNotFound as image_error:
+ msg = _("Image that the instance was started "
+ "with could not be found.")
+ raise exc.HTTPBadRequest(explanation=msg)
+ except exception.Invalid:
+ msg = _("Invalid instance image.")
+ raise exc.HTTPBadRequest(explanation=msg)
return webob.Response(status_int=202)
@@ -1288,10 +1295,10 @@ class Controller(wsgi.Controller):
except exception.ImageNotFound:
msg = _("Cannot find image for rebuild")
raise exc.HTTPBadRequest(explanation=msg)
- except (exception.InvalidMetadata,
- exception.InstanceTypeMemoryTooSmall,
+ except (exception.ImageNotActive,
exception.InstanceTypeDiskTooSmall,
- exception.ImageNotActive) as error:
+ exception.InstanceTypeMemoryTooSmall,
+ exception.InvalidMetadata) as error:
raise exc.HTTPBadRequest(explanation=error.format_message())
instance = self._get_server(context, req, id)
@@ -1358,7 +1365,7 @@ class Controller(wsgi.Controller):
common.raise_http_conflict_for_instance_invalid_state(state_error,
'createImage')
except exception.Invalid as err:
- raise exc.HTTPBadRequest(explanation=str(err))
+ raise exc.HTTPBadRequest(explanation=err.format_message())
# build location of newly-created image entity
image_id = str(image['id'])
diff --git a/nova/api/openstack/compute/views/servers.py b/nova/api/openstack/compute/views/servers.py
index 0cd6afaa1..bf7123ba7 100644
--- a/nova/api/openstack/compute/views/servers.py
+++ b/nova/api/openstack/compute/views/servers.py
@@ -181,7 +181,7 @@ class ViewBuilder(common.ViewBuilder):
return ""
def _get_flavor(self, request, instance):
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
if not instance_type:
LOG.warn(_("Instance has had its instance_type removed "
"from the DB"), instance=instance)
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index 83e4b7ba5..6cbc5bb78 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -297,7 +297,7 @@ class ResourceExtension(object):
def __init__(self, collection, controller=None, parent=None,
collection_actions=None, member_actions=None,
- custom_routes_fn=None, inherits=None):
+ custom_routes_fn=None, inherits=None, member_name=None):
if not collection_actions:
collection_actions = {}
if not member_actions:
@@ -309,6 +309,7 @@ class ResourceExtension(object):
self.member_actions = member_actions
self.custom_routes_fn = custom_routes_fn
self.inherits = inherits
+ self.member_name = member_name
def load_standard_extensions(ext_mgr, logger, path, package, ext_list=None):
@@ -410,6 +411,9 @@ class V3APIExtensionBase(object):
"""
__metaclass__ = abc.ABCMeta
+ def __init__(self, extension_info):
+ self.extension_info = extension_info
+
@abc.abstractmethod
def get_resources(self):
"""Return a list of resources extensions.
diff --git a/nova/api/openstack/wsgi.py b/nova/api/openstack/wsgi.py
index 9c5f9855d..bf5627b3a 100644
--- a/nova/api/openstack/wsgi.py
+++ b/nova/api/openstack/wsgi.py
@@ -917,7 +917,8 @@ class Resource(wsgi.Application):
if body:
msg = _("Action: '%(action)s', body: "
- "%(body)s") % {'action': action, 'body': body}
+ "%(body)s") % {'action': action,
+ 'body': unicode(body, 'utf-8')}
LOG.debug(msg)
LOG.debug(_("Calling method %s") % meth)
@@ -940,7 +941,11 @@ class Resource(wsgi.Application):
project_id = action_args.pop("project_id", None)
context = request.environ.get('nova.context')
if (context and project_id and (project_id != context.project_id)):
- msg = _("Malformed request url")
+ msg = _("Malformed request URL: URL's project_id '%(project_id)s'"
+ " doesn't match Context's project_id"
+ " '%(context_project_id)s'") % \
+ {'project_id': project_id,
+ 'context_project_id': context.project_id}
return Fault(webob.exc.HTTPBadRequest(explanation=msg))
# Run pre-processing extensions
@@ -967,7 +972,6 @@ class Resource(wsgi.Application):
# Run post-processing extensions
if resp_obj:
- _set_request_id_header(request, resp_obj)
# Do a preserialize to set up the response object
serializers = getattr(meth, 'wsgi_serializers', {})
resp_obj._bind_method_serializers(serializers)
@@ -983,6 +987,9 @@ class Resource(wsgi.Application):
response = resp_obj.serialize(request, accept,
self.default_serializers)
+ if context and hasattr(response, 'headers'):
+ response.headers.add('x-compute-request-id', context.request_id)
+
return response
def get_method(self, request, action, content_type, body):
diff --git a/nova/block_device.py b/nova/block_device.py
index b7a9881b1..746fd6bb4 100644
--- a/nova/block_device.py
+++ b/nova/block_device.py
@@ -17,9 +17,14 @@
import re
+from oslo.config import cfg
+
+from nova import exception
from nova.openstack.common import log as logging
from nova.virt import driver
+CONF = cfg.CONF
+CONF.import_opt('default_ephemeral_format', 'nova.virt.driver')
LOG = logging.getLogger(__name__)
DEFAULT_ROOT_DEV_NAME = '/dev/sda1'
@@ -29,6 +34,176 @@ _DEFAULT_MAPPINGS = {'ami': 'sda1',
'swap': 'sda3'}
+bdm_legacy_fields = set(['device_name', 'delete_on_termination',
+ 'virtual_name', 'snapshot_id',
+ 'volume_id', 'volume_size', 'no_device',
+ 'connection_info'])
+
+
+bdm_new_fields = set(['source_type', 'destination_type',
+ 'guest_format', 'device_type', 'disk_bus', 'boot_index',
+ 'device_name', 'delete_on_termination', 'snapshot_id',
+ 'volume_id', 'volume_size', 'image_id', 'no_device',
+ 'connection_info'])
+
+
+bdm_db_only_fields = set(['id', 'instance_uuid'])
+
+
+bdm_db_inherited_fields = set(['created_at', 'updated_at',
+ 'deleted_at', 'deleted'])
+
+
+class BlockDeviceDict(dict):
+ """Represents a Block Device Mapping in Nova."""
+
+ _fields = bdm_new_fields
+ _db_only_fields = (bdm_db_only_fields |
+ bdm_db_inherited_fields)
+
+ def __init__(self, bdm_dict=None, do_not_default=None):
+ super(BlockDeviceDict, self).__init__()
+
+ bdm_dict = bdm_dict or {}
+ do_not_default = do_not_default or set()
+
+ self._validate(bdm_dict)
+ # NOTE (ndipanov): Never default db fields
+ self.update(
+ dict((field, None)
+ for field in self._fields - do_not_default))
+ self.update(bdm_dict)
+
+ def _validate(self, bdm_dict):
+ """Basic data format validations."""
+ if (not set(key for key, _ in bdm_dict.iteritems()) <=
+ (self._fields | self._db_only_fields)):
+ raise exception.InvalidBDMFormat()
+ # TODO(ndipanov): Validate must-have fields!
+
+ @classmethod
+ def from_legacy(cls, legacy_bdm):
+
+ copy_over_fields = bdm_legacy_fields & bdm_new_fields
+ copy_over_fields |= (bdm_db_only_fields |
+ bdm_db_inherited_fields)
+ # NOTE (ndipanov): These fields cannot be computed
+ # from legacy bdm, so do not default them
+ # to avoid overwriting meaningful values in the db
+ non_computable_fields = set(['boot_index', 'disk_bus',
+ 'guest_format', 'device_type'])
+
+ new_bdm = dict((fld, val) for fld, val in legacy_bdm.iteritems()
+ if fld in copy_over_fields)
+
+ virt_name = legacy_bdm.get('virtual_name')
+ volume_size = legacy_bdm.get('volume_size')
+
+ if is_swap_or_ephemeral(virt_name):
+ new_bdm['source_type'] = 'blank'
+ new_bdm['delete_on_termination'] = True
+ new_bdm['destination_type'] = 'local'
+
+ if virt_name == 'swap':
+ new_bdm['guest_format'] = 'swap'
+ else:
+ new_bdm['guest_format'] = CONF.default_ephemeral_format
+
+ elif legacy_bdm.get('snapshot_id'):
+ new_bdm['source_type'] = 'snapshot'
+ new_bdm['destination_type'] = 'volume'
+
+ elif legacy_bdm.get('volume_id'):
+ new_bdm['source_type'] = 'volume'
+ new_bdm['destination_type'] = 'volume'
+
+ elif legacy_bdm.get('no_device'):
+ # NOTE (ndipanov): Just keep the BDM for now,
+ pass
+
+ else:
+ raise exception.InvalidBDMFormat()
+
+ return cls(new_bdm, non_computable_fields)
+
+ def legacy(self):
+ copy_over_fields = bdm_legacy_fields - set(['virtual_name'])
+ copy_over_fields |= (bdm_db_only_fields |
+ bdm_db_inherited_fields)
+
+ legacy_block_device = dict((field, self.get(field))
+ for field in copy_over_fields if field in self)
+
+ source_type = self.get('source_type')
+ no_device = self.get('no_device')
+ if source_type == 'blank':
+ if self['guest_format'] == 'swap':
+ legacy_block_device['virtual_name'] = 'swap'
+ else:
+ # NOTE (ndipanov): Always label as 0, it is up to
+ # the calling routine to re-enumerate them
+ legacy_block_device['virtual_name'] = 'ephemeral0'
+ elif source_type in ('volume', 'snapshot') or no_device:
+ legacy_block_device['virtual_name'] = None
+ elif source_type == 'image':
+ # NOTE(ndipanov): Image bdms have no meaning in
+ # the legacy format - raise
+ raise exception.InvalidBDMForLegacy()
+
+ return legacy_block_device
+
+
+def is_safe_for_update(block_device_dict):
+ """Determine if passed dict is a safe subset for update.
+
+ Safe subset in this case means a safe subset of both legacy
+ and new versions of data, that can be passed to an UPDATE query
+ without any transformation.
+ """
+ fields = set(block_device_dict.keys())
+ return fields <= (bdm_new_fields |
+ bdm_db_inherited_fields |
+ bdm_db_only_fields)
+
+
+def create_image_bdm(image_ref, boot_index=0):
+ """Create a block device dict based on the image_ref.
+
+ This is useful in the API layer to keep the compatibility
+ with having an image_ref as a field in the instance requests
+ """
+ return BlockDeviceDict(
+ {'source_type': 'image',
+ 'image_id': image_ref,
+ 'delete_on_termination': True,
+ 'boot_index': boot_index,
+ 'device_type': 'disk',
+ 'destination_type': 'local'})
+
+
+def legacy_mapping(block_device_mapping):
+ """Transform a list of block devices of an instance back to the
+ legacy data format."""
+
+ legacy_block_device_mapping = []
+
+ for bdm in block_device_mapping:
+ try:
+ legacy_block_device = BlockDeviceDict(bdm).legacy()
+ except exception.InvalidBDMForLegacy:
+ continue
+
+ legacy_block_device_mapping.append(legacy_block_device)
+
+ # Re-enumerate the ephemeral devices
+ for i, dev in enumerate(dev for dev in legacy_block_device_mapping
+ if dev['virtual_name'] and
+ is_ephemeral(dev['virtual_name'])):
+ dev['virtual_name'] = dev['virtual_name'][:-1] + str(i)
+
+ return legacy_block_device_mapping
+
+
def properties_root_device_name(properties):
"""get root device name from image meta data.
If it isn't specified, return None.
@@ -61,7 +236,8 @@ def ephemeral_num(ephemeral_name):
def is_swap_or_ephemeral(device_name):
- return device_name == 'swap' or is_ephemeral(device_name)
+ return (device_name and
+ (device_name == 'swap' or is_ephemeral(device_name)))
def mappings_prepend_dev(mappings):
diff --git a/nova/cells/filters/__init__.py b/nova/cells/filters/__init__.py
new file mode 100644
index 000000000..f9b6d7a15
--- /dev/null
+++ b/nova/cells/filters/__init__.py
@@ -0,0 +1,62 @@
+# Copyright (c) 2012-2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Cell scheduler filters
+"""
+
+from nova import filters
+from nova.openstack.common import log as logging
+from nova import policy
+
+LOG = logging.getLogger(__name__)
+
+
+class BaseCellFilter(filters.BaseFilter):
+ """Base class for cell filters."""
+
+ def authorized(self, ctxt):
+ """Return whether or not the context is authorized for this filter
+ based on policy.
+ The policy action is "cells_scheduler_filter:<name>" where <name>
+ is the name of the filter class.
+ """
+ name = 'cells_scheduler_filter:' + self.__class__.__name__
+ target = {'project_id': ctxt.project_id,
+ 'user_id': ctxt.user_id}
+ return policy.enforce(ctxt, name, target, do_raise=False)
+
+ def _filter_one(self, cell, filter_properties):
+ return self.cell_passes(cell, filter_properties)
+
+ def cell_passes(self, cell, filter_properties):
+ """Return True if the CellState passes the filter, otherwise False.
+ Override this in a subclass.
+ """
+ raise NotImplementedError()
+
+
+class CellFilterHandler(filters.BaseFilterHandler):
+ def __init__(self):
+ super(CellFilterHandler, self).__init__(BaseCellFilter)
+
+
+def all_filters():
+ """Return a list of filter classes found in this directory.
+
+ This method is used as the default for available scheduler filters
+ and should return a list of all filter classes available.
+ """
+ return CellFilterHandler().get_all_classes()
diff --git a/nova/cells/filters/target_cell.py b/nova/cells/filters/target_cell.py
new file mode 100644
index 000000000..ab5adb1e8
--- /dev/null
+++ b/nova/cells/filters/target_cell.py
@@ -0,0 +1,68 @@
+# Copyright (c) 2012-2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Target cell filter.
+
+A scheduler hint of 'target_cell' with a value of a full cell name may be
+specified to route a build to a particular cell. No error handling is
+done as there's no way to know whether the full path is a valid.
+"""
+
+from nova.cells import filters
+from nova.openstack.common import log as logging
+
+LOG = logging.getLogger(__name__)
+
+
+class TargetCellFilter(filters.BaseCellFilter):
+ """Target cell filter. Works by specifying a scheduler hint of
+ 'target_cell'. The value should be the full cell path.
+ """
+
+ def filter_all(self, cells, filter_properties):
+ """Override filter_all() which operates on the full list
+ of cells...
+ """
+ scheduler_hints = filter_properties.get('scheduler_hints')
+ if not scheduler_hints:
+ return cells
+
+ # This filter only makes sense at the top level, as a full
+ # cell name is specified. So we pop 'target_cell' out of the
+ # hints dict.
+ cell_name = scheduler_hints.pop('target_cell', None)
+ if not cell_name:
+ return cells
+
+ # This authorization is after popping off target_cell, so
+ # that in case this fails, 'target_cell' is not left in the
+ # dict when child cells go to schedule.
+ if not self.authorized(filter_properties['context']):
+ # No filtering, if not authorized.
+ return cells
+
+ LOG.info(_("Forcing direct route to %(cell_name)s because "
+ "of 'target_cell' scheduler hint"),
+ {'cell_name': cell_name})
+
+ scheduler = filter_properties['scheduler']
+ if cell_name == filter_properties['routing_path']:
+ return [scheduler.state_manager.get_my_state()]
+ ctxt = filter_properties['context']
+ scheduler.msg_runner.schedule_run_instance(ctxt, cell_name,
+ filter_properties['host_sched_kwargs'])
+ # Returning None means to skip further scheduling, because we
+ # handled it.
diff --git a/nova/cells/manager.py b/nova/cells/manager.py
index 15ee2224c..f776c542e 100644
--- a/nova/cells/manager.py
+++ b/nova/cells/manager.py
@@ -64,7 +64,7 @@ class CellsManager(manager.Manager):
Scheduling requests get passed to the scheduler class.
"""
- RPC_API_VERSION = '1.7'
+ RPC_API_VERSION = '1.9'
def __init__(self, *args, **kwargs):
# Mostly for tests.
@@ -186,6 +186,14 @@ class CellsManager(manager.Manager):
self.msg_runner.schedule_run_instance(ctxt, our_cell,
host_sched_kwargs)
+ def build_instances(self, ctxt, build_inst_kwargs):
+ """Pick a cell (possibly ourselves) to build new instance(s) and
+ forward the request accordingly.
+ """
+ # Target is ourselves first.
+ our_cell = self.state_manager.get_my_state()
+ self.msg_runner.build_instances(ctxt, our_cell, build_inst_kwargs)
+
def get_cell_info_for_neighbors(self, _ctxt):
"""Return cell information for our neighbor cells."""
return self.state_manager.get_cell_info_for_neighbors()
@@ -379,3 +387,6 @@ class CellsManager(manager.Manager):
instance['cell_name'], instance_uuid, console_port,
console_type)
return response.value_or_raise()
+
+ def get_capacities(self, ctxt, cell_name):
+ return self.state_manager.get_capacities(cell_name)
diff --git a/nova/cells/messaging.py b/nova/cells/messaging.py
index 60f11ad12..319067836 100644
--- a/nova/cells/messaging.py
+++ b/nova/cells/messaging.py
@@ -651,6 +651,10 @@ class _TargetedMessageMethods(_BaseMessageMethods):
"""Parent cell told us to schedule new instance creation."""
self.msg_runner.scheduler.run_instance(message, host_sched_kwargs)
+ def build_instances(self, message, build_inst_kwargs):
+ """Parent cell told us to schedule new instance creation."""
+ self.msg_runner.scheduler.build_instances(message, build_inst_kwargs)
+
def run_compute_api_method(self, message, method_info):
"""Run a method in the compute api class."""
method = method_info['method']
@@ -847,8 +851,8 @@ class _BroadcastMessageMethods(_BaseMessageMethods):
self.db.instance_create(message.ctxt, instance)
if info_cache:
try:
- self.db.instance_info_cache_update(message.ctxt,
- instance_uuid, info_cache, update_cells=False)
+ self.db.instance_info_cache_update(
+ message.ctxt, instance_uuid, info_cache)
except exception.InstanceInfoCacheNotFound:
# Can happen if we try to update a deleted instance's
# network information.
@@ -1132,6 +1136,15 @@ class MessageRunner(object):
method_kwargs, 'down', target_cell)
message.process()
+ def build_instances(self, ctxt, target_cell, build_inst_kwargs):
+ """Called by the cell scheduler to tell a child cell to build
+ instance(s).
+ """
+ method_kwargs = dict(build_inst_kwargs=build_inst_kwargs)
+ message = _TargetedMessage(self, ctxt, 'build_instances',
+ method_kwargs, 'down', target_cell)
+ message.process()
+
def run_compute_api_method(self, ctxt, cell_name, method_info, call):
"""Call a compute API method in a specific cell."""
message = _TargetedMessage(self, ctxt, 'run_compute_api_method',
diff --git a/nova/cells/opts.py b/nova/cells/opts.py
index 203f98687..4e3d75de4 100644
--- a/nova/cells/opts.py
+++ b/nova/cells/opts.py
@@ -43,6 +43,9 @@ cells_opts = [
default=10.0,
help='Percentage of cell capacity to hold in reserve. '
'Affects both memory and disk utilization'),
+ cfg.StrOpt('cell_type',
+ default=None,
+ help='Type of cell: api or compute'),
]
cfg.CONF.register_opts(cells_opts, group='cells')
diff --git a/nova/cells/rpcapi.py b/nova/cells/rpcapi.py
index c8b7c680f..dd757c818 100644
--- a/nova/cells/rpcapi.py
+++ b/nova/cells/rpcapi.py
@@ -50,6 +50,8 @@ class CellsAPI(rpc_proxy.RpcProxy):
action_events_get()
1.6 - Adds consoleauth_delete_tokens() and validate_console_port()
1.7 - Adds service_update()
+ 1.8 - Adds build_instances(), deprecates schedule_run_instance()
+ 1.9 - Adds get_capacities()
'''
BASE_RPC_API_VERSION = '1.0'
@@ -79,11 +81,24 @@ class CellsAPI(rpc_proxy.RpcProxy):
method_info=method_info,
call=True))
+ # NOTE(alaski): Deprecated and should be removed later.
def schedule_run_instance(self, ctxt, **kwargs):
"""Schedule a new instance for creation."""
self.cast(ctxt, self.make_msg('schedule_run_instance',
host_sched_kwargs=kwargs))
+ def build_instances(self, ctxt, **kwargs):
+ """Build instances."""
+ build_inst_kwargs = kwargs
+ instances = build_inst_kwargs['instances']
+ instances_p = [jsonutils.to_primitive(inst) for inst in instances]
+ build_inst_kwargs['instances'] = instances_p
+ build_inst_kwargs['image'] = jsonutils.to_primitive(
+ build_inst_kwargs['image'])
+ self.cast(ctxt, self.make_msg('build_instances',
+ build_inst_kwargs=build_inst_kwargs),
+ version=1.8)
+
def instance_update_at_top(self, ctxt, instance):
"""Update instance at API level."""
if not CONF.cells.enable:
@@ -278,3 +293,8 @@ class CellsAPI(rpc_proxy.RpcProxy):
console_port=console_port,
console_type=console_type),
version='1.6')
+
+ def get_capacities(self, ctxt, cell_name=None):
+ return self.call(ctxt,
+ self.make_msg('get_capacities', cell_name=cell_name),
+ version='1.9')
diff --git a/nova/cells/scheduler.py b/nova/cells/scheduler.py
index 18389dbc5..c54b9b578 100644
--- a/nova/cells/scheduler.py
+++ b/nova/cells/scheduler.py
@@ -16,21 +16,35 @@
"""
Cells Scheduler
"""
-import random
+import copy
import time
from oslo.config import cfg
+from nova.cells import filters
+from nova.cells import weights
from nova import compute
from nova.compute import instance_actions
from nova.compute import utils as compute_utils
from nova.compute import vm_states
+from nova import conductor
from nova.db import base
from nova import exception
from nova.openstack.common import log as logging
from nova.scheduler import rpcapi as scheduler_rpcapi
+from nova.scheduler import utils as scheduler_utils
cell_scheduler_opts = [
+ cfg.ListOpt('scheduler_filter_classes',
+ default=['nova.cells.filters.all_filters'],
+ help='Filter classes the cells scheduler should use. '
+ 'An entry of "nova.cells.filters.all_filters"'
+ 'maps to all cells filters included with nova.'),
+ cfg.ListOpt('scheduler_weight_classes',
+ default=['nova.cells.weights.all_weighers'],
+ help='Weigher classes the cells scheduler should use. '
+ 'An entry of "nova.cells.weights.all_weighers"'
+ 'maps to all cell weighers included with nova.'),
cfg.IntOpt('scheduler_retries',
default=10,
help='How many retries when no cells are available.'),
@@ -55,19 +69,27 @@ class CellsScheduler(base.Base):
self.state_manager = msg_runner.state_manager
self.compute_api = compute.API()
self.scheduler_rpcapi = scheduler_rpcapi.SchedulerAPI()
+ self.compute_task_api = conductor.ComputeTaskAPI()
+ self.filter_handler = filters.CellFilterHandler()
+ self.filter_classes = self.filter_handler.get_matching_classes(
+ CONF.cells.scheduler_filter_classes)
+ self.weight_handler = weights.CellWeightHandler()
+ self.weigher_classes = self.weight_handler.get_matching_classes(
+ CONF.cells.scheduler_weight_classes)
- def _create_instances_here(self, ctxt, request_spec):
- instance_values = request_spec['instance_properties']
- num_instances = len(request_spec['instance_uuids'])
- for i, instance_uuid in enumerate(request_spec['instance_uuids']):
+ def _create_instances_here(self, ctxt, instance_uuids, instance_properties,
+ instance_type, image, security_groups, block_device_mapping):
+ instance_values = copy.copy(instance_properties)
+ num_instances = len(instance_uuids)
+ for i, instance_uuid in enumerate(instance_uuids):
instance_values['uuid'] = instance_uuid
instance = self.compute_api.create_db_entry_for_new_instance(
ctxt,
- request_spec['instance_type'],
- request_spec['image'],
+ instance_type,
+ image,
instance_values,
- request_spec['security_group'],
- request_spec['block_device_mapping'],
+ security_groups,
+ block_device_mapping,
num_instances, i)
self.msg_runner.instance_update_at_top(ctxt, instance)
@@ -79,52 +101,150 @@ class CellsScheduler(base.Base):
self.db.action_start(ctxt, action)
def _get_possible_cells(self):
- cells = set(self.state_manager.get_child_cells())
+ cells = self.state_manager.get_child_cells()
our_cell = self.state_manager.get_my_state()
# Include our cell in the list, if we have any capacity info
if not cells or our_cell.capacities:
- cells.add(our_cell)
+ cells.append(our_cell)
return cells
- def _run_instance(self, message, host_sched_kwargs):
- """Attempt to schedule instance(s). If we have no cells
- to try, raise exception.NoCellsAvailable
- """
- ctxt = message.ctxt
- request_spec = host_sched_kwargs['request_spec']
-
- # The message we might forward to a child cell
+ def _grab_target_cells(self, filter_properties):
cells = self._get_possible_cells()
+ cells = self.filter_handler.get_filtered_objects(self.filter_classes,
+ cells,
+ filter_properties)
+ # NOTE(comstud): I know this reads weird, but the 'if's are nested
+ # this way to optimize for the common case where 'cells' is a list
+ # containing at least 1 entry.
if not cells:
+ if cells is None:
+ # None means to bypass further scheduling as a filter
+ # took care of everything.
+ return
raise exception.NoCellsAvailable()
- cells = list(cells)
- # Random selection for now
- random.shuffle(cells)
- target_cell = cells[0]
+ weighted_cells = self.weight_handler.get_weighed_objects(
+ self.weigher_classes, cells, filter_properties)
+ LOG.debug(_("Weighted cells: %(weighted_cells)s"),
+ {'weighted_cells': weighted_cells})
+ target_cells = [cell.obj for cell in weighted_cells]
+ return target_cells
+
+ def _run_instance(self, message, target_cells, instance_uuids,
+ host_sched_kwargs):
+ """Attempt to schedule instance(s)."""
+ ctxt = message.ctxt
+ request_spec = host_sched_kwargs['request_spec']
+ instance_properties = request_spec['instance_properties']
+ instance_type = request_spec['instance_type']
+ image = request_spec['image']
+ security_groups = request_spec['security_group']
+ block_device_mapping = request_spec['block_device_mapping']
LOG.debug(_("Scheduling with routing_path=%(routing_path)s"),
{'routing_path': message.routing_path})
- if target_cell.is_me:
- # Need to create instance DB entries as the host scheduler
- # expects that the instance(s) already exists.
- self._create_instances_here(ctxt, request_spec)
- # Need to record the create action in the db as the scheduler
- # expects it to already exist.
- self._create_action_here(ctxt, request_spec['instance_uuids'])
- self.scheduler_rpcapi.run_instance(ctxt,
- **host_sched_kwargs)
- return
- self.msg_runner.schedule_run_instance(ctxt, target_cell,
- host_sched_kwargs)
+ for target_cell in target_cells:
+ try:
+ if target_cell.is_me:
+ # Need to create instance DB entries as the host scheduler
+ # expects that the instance(s) already exists.
+ self._create_instances_here(ctxt, instance_uuids,
+ instance_properties, instance_type, image,
+ security_groups, block_device_mapping)
+ # Need to record the create action in the db as the
+ # scheduler expects it to already exist.
+ self._create_action_here(ctxt, instance_uuids)
+ self.scheduler_rpcapi.run_instance(ctxt,
+ **host_sched_kwargs)
+ return
+ self.msg_runner.schedule_run_instance(ctxt, target_cell,
+ host_sched_kwargs)
+ return
+ except Exception:
+ LOG.exception(_("Couldn't communicate with cell '%s'") %
+ target_cell.name)
+ # FIXME(comstud): Would be nice to kick this back up so that
+ # the parent cell could retry, if we had a parent.
+ msg = _("Couldn't communicate with any cells")
+ LOG.error(msg)
+ raise exception.NoCellsAvailable()
+
+ def _build_instances(self, message, target_cells, instance_uuids,
+ build_inst_kwargs):
+ """Attempt to build instance(s) or send msg to child cell."""
+ ctxt = message.ctxt
+ instance_properties = build_inst_kwargs['instances'][0]
+ instance_type = build_inst_kwargs['instance_type']
+ image = build_inst_kwargs['image']
+ security_groups = build_inst_kwargs['security_group']
+ block_device_mapping = build_inst_kwargs['block_device_mapping']
+
+ LOG.debug(_("Building instances with routing_path=%(routing_path)s"),
+ {'routing_path': message.routing_path})
+
+ for target_cell in target_cells:
+ try:
+ if target_cell.is_me:
+ # Need to create instance DB entries as the conductor
+ # expects that the instance(s) already exists.
+ self._create_instances_here(ctxt, instance_uuids,
+ instance_properties, instance_type, image,
+ security_groups, block_device_mapping)
+ # Need to record the create action in the db as the
+ # conductor expects it to already exist.
+ self._create_action_here(ctxt, instance_uuids)
+ self.compute_task_api.build_instances(ctxt,
+ **build_inst_kwargs)
+ return
+ self.msg_runner.build_instances(ctxt, target_cell,
+ build_inst_kwargs)
+ return
+ except Exception:
+ LOG.exception(_("Couldn't communicate with cell '%s'") %
+ target_cell.name)
+ # FIXME(comstud): Would be nice to kick this back up so that
+ # the parent cell could retry, if we had a parent.
+ msg = _("Couldn't communicate with any cells")
+ LOG.error(msg)
+ raise exception.NoCellsAvailable()
+
+ def build_instances(self, message, build_inst_kwargs):
+ image = build_inst_kwargs['image']
+ instance_uuids = [inst['uuid'] for inst in
+ build_inst_kwargs['instances']]
+ instances = build_inst_kwargs['instances']
+ request_spec = scheduler_utils.build_request_spec(image, instances)
+ filter_properties = copy.copy(build_inst_kwargs['filter_properties'])
+ filter_properties.update({'context': message.ctxt,
+ 'scheduler': self,
+ 'routing_path': message.routing_path,
+ 'host_sched_kwargs': build_inst_kwargs,
+ 'request_spec': request_spec})
+ self._schedule_build_to_cells(message, instance_uuids,
+ filter_properties, self._build_instances, build_inst_kwargs)
def run_instance(self, message, host_sched_kwargs):
- """Pick a cell where we should create a new instance."""
+ request_spec = host_sched_kwargs['request_spec']
+ instance_uuids = request_spec['instance_uuids']
+ filter_properties = copy.copy(host_sched_kwargs['filter_properties'])
+ filter_properties.update({'context': message.ctxt,
+ 'scheduler': self,
+ 'routing_path': message.routing_path,
+ 'host_sched_kwargs': host_sched_kwargs,
+ 'request_spec': request_spec})
+ self._schedule_build_to_cells(message, instance_uuids,
+ filter_properties, self._run_instance, host_sched_kwargs)
+
+ def _schedule_build_to_cells(self, message, instance_uuids,
+ filter_properties, method, method_kwargs):
+ """Pick a cell where we should create a new instance(s)."""
try:
for i in xrange(max(0, CONF.cells.scheduler_retries) + 1):
try:
- return self._run_instance(message, host_sched_kwargs)
+ target_cells = self._grab_target_cells(filter_properties)
+ return method(message, target_cells, instance_uuids,
+ method_kwargs)
except exception.NoCellsAvailable:
if i == max(0, CONF.cells.scheduler_retries):
raise
@@ -135,8 +255,6 @@ class CellsScheduler(base.Base):
time.sleep(sleep_time)
continue
except Exception:
- request_spec = host_sched_kwargs['request_spec']
- instance_uuids = request_spec['instance_uuids']
LOG.exception(_("Error scheduling instances %(instance_uuids)s"),
{'instance_uuids': instance_uuids})
ctxt = message.ctxt
diff --git a/nova/cells/state.py b/nova/cells/state.py
index f1c77cef1..37813d581 100644
--- a/nova/cells/state.py
+++ b/nova/cells/state.py
@@ -25,6 +25,7 @@ from oslo.config import cfg
from nova.cells import rpc_driver
from nova import context
from nova.db import base
+from nova import exception
from nova.openstack.common import log as logging
from nova.openstack.common import timeutils
from nova import utils
@@ -127,7 +128,7 @@ class CellStateManager(base.Base):
else:
values = set([value])
my_cell_capabs[name] = values
- self.my_cell_state.update_capabilities(my_cell_capabs)
+ self.my_cell_state.update_capabilities(my_cell_capabs)
def _refresh_cells_from_db(self, ctxt):
"""Make our cell info map match the db."""
@@ -361,3 +362,11 @@ class CellStateManager(base.Base):
for cell in self.child_cells.values():
self._add_to_dict(capacities, cell.capacities)
return capacities
+
+ @sync_from_db
+ def get_capacities(self, cell_name=None):
+ if not cell_name or cell_name == self.my_cell_state.name:
+ return self.get_our_capacities()
+ if cell_name in self.child_cells:
+ return self.child_cells[cell_name].capacities
+ raise exception.CellNotFound(cell_name=cell_name)
diff --git a/nova/cells/weights/__init__.py b/nova/cells/weights/__init__.py
new file mode 100644
index 000000000..202a6a31a
--- /dev/null
+++ b/nova/cells/weights/__init__.py
@@ -0,0 +1,43 @@
+# Copyright (c) 2012-2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Cell Scheduler weights
+"""
+
+from nova import weights
+
+
+class WeightedCell(weights.WeighedObject):
+ def __repr__(self):
+ return "WeightedCell [cell: %s, weight: %s]" % (
+ self.obj.name, self.weight)
+
+
+class BaseCellWeigher(weights.BaseWeigher):
+ """Base class for cell weights."""
+ pass
+
+
+class CellWeightHandler(weights.BaseWeightHandler):
+ object_class = WeightedCell
+
+ def __init__(self):
+ super(CellWeightHandler, self).__init__(BaseCellWeigher)
+
+
+def all_weighers():
+ """Return a list of weight plugin classes found in this directory."""
+ return CellWeightHandler().get_all_classes()
diff --git a/nova/cells/weights/mute_child.py b/nova/cells/weights/mute_child.py
new file mode 100644
index 000000000..b8fd0570b
--- /dev/null
+++ b/nova/cells/weights/mute_child.py
@@ -0,0 +1,72 @@
+# Copyright (c) 2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+If a child cell hasn't sent capacity or capability updates in a while,
+downgrade its likelihood of being chosen for scheduling requests.
+"""
+
+from oslo.config import cfg
+
+from nova.cells import weights
+from nova.openstack.common import log as logging
+from nova.openstack.common import timeutils
+
+LOG = logging.getLogger(__name__)
+
+mute_weigher_opts = [
+ cfg.FloatOpt('mute_weight_multiplier',
+ default=-10.0,
+ help='Multiplier used to weigh mute children. (The value '
+ 'should be negative.)'),
+ cfg.FloatOpt('mute_weight_value',
+ default=1000.0,
+ help='Weight value assigned to mute children. (The value '
+ 'should be positive.)'),
+ cfg.IntOpt("mute_child_interval",
+ default=300,
+ help='Number of seconds after which a lack of capability and '
+ 'capacity updates signals the child cell is to be '
+ 'treated as a mute.')
+]
+
+CONF = cfg.CONF
+CONF.register_opts(mute_weigher_opts, group='cells')
+
+
+class MuteChildWeigher(weights.BaseCellWeigher):
+ """If a child cell hasn't been heard from, greatly lower its selection
+ weight.
+ """
+
+ def _weight_multiplier(self):
+ # negative multiplier => lower weight
+ return CONF.cells.mute_weight_multiplier
+
+ def _weigh_object(self, cell, weight_properties):
+ """Check cell against the last_seen timestamp that indicates the time
+ that the most recent capability or capacity update was received from
+ the given cell."""
+
+ last_seen = cell.last_seen
+ secs = CONF.cells.mute_child_interval
+
+ if timeutils.is_older_than(last_seen, secs):
+ # yep, that's a mute child; recommend highly that it be skipped!
+ LOG.warn(_("%(cell)s has not been seen since %(last_seen)s and is "
+ "being treated as mute.") % locals())
+ return CONF.cells.mute_weight_value
+ else:
+ return 0
diff --git a/nova/cells/weights/ram_by_instance_type.py b/nova/cells/weights/ram_by_instance_type.py
new file mode 100644
index 000000000..1a1d164d2
--- /dev/null
+++ b/nova/cells/weights/ram_by_instance_type.py
@@ -0,0 +1,54 @@
+# Copyright (c) 2012-2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Weigh cells by memory needed in a way that spreads instances.
+"""
+from oslo.config import cfg
+
+from nova.cells import weights
+
+ram_weigher_opts = [
+ cfg.FloatOpt('ram_weight_multiplier',
+ default=10.0,
+ help='Multiplier used for weighing ram. Negative '
+ 'numbers mean to stack vs spread.'),
+]
+
+CONF = cfg.CONF
+CONF.register_opts(ram_weigher_opts, group='cells')
+
+
+class RamByInstanceTypeWeigher(weights.BaseCellWeigher):
+ """Weigh cells by instance_type requested."""
+
+ def _weight_multiplier(self):
+ return CONF.cells.ram_weight_multiplier
+
+ def _weigh_object(self, cell, weight_properties):
+ """
+ Use the 'ram_free' for a particular instance_type advertised from a
+ child cell's capacity to compute a weight. We want to direct the
+ build to a cell with a higher capacity. Since higher weights win,
+ we just return the number of units available for the instance_type.
+ """
+ request_spec = weight_properties['request_spec']
+ instance_type = request_spec['instance_type']
+ memory_needed = instance_type['memory_mb']
+
+ ram_free = cell.capacities.get('ram_free', {})
+ units_by_mb = ram_free.get('units_by_mb', {})
+
+ return units_by_mb.get(str(memory_needed), 0)
diff --git a/nova/cells/weights/weight_offset.py b/nova/cells/weights/weight_offset.py
new file mode 100644
index 000000000..14348ee20
--- /dev/null
+++ b/nova/cells/weights/weight_offset.py
@@ -0,0 +1,33 @@
+# Copyright (c) 2012-2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Weigh cells by their weight_offset in the DB. Cells with higher
+weight_offsets in the DB will be preferred.
+"""
+
+from nova.cells import weights
+
+
+class WeightOffsetWeigher(weights.BaseCellWeigher):
+ """
+ Weight cell by weight_offset db field.
+ Originally designed so you can set a default cell by putting
+ its weight_offset to 999999999999999 (highest weight wins)
+ """
+
+ def _weigh_object(self, cell, weight_properties):
+ """Returns whatever was in the DB for weight_offset."""
+ return cell.db_info.get('weight_offset', 0)
diff --git a/nova/cloudpipe/pipelib.py b/nova/cloudpipe/pipelib.py
index 0727528c2..db79d4d42 100644
--- a/nova/cloudpipe/pipelib.py
+++ b/nova/cloudpipe/pipelib.py
@@ -43,9 +43,11 @@ cloudpipe_opts = [
cfg.StrOpt('vpn_image_id',
default='0',
help='image id used when starting up a cloudpipe vpn server'),
- cfg.StrOpt('vpn_instance_type',
+ cfg.StrOpt('vpn_flavor',
+ # Deprecated in Havana
+ deprecated_name='vpn_instance_type',
default='m1.tiny',
- help=_('Instance type for vpn instances')),
+ help=_('Flavor for vpn instances')),
cfg.StrOpt('boot_script_template',
default=paths.basedir_def('nova/cloudpipe/bootscript.template'),
help=_('Template for cloudpipe instance boot script')),
@@ -126,8 +128,8 @@ class CloudPipe(object):
LOG.debug(_("Launching VPN for %s") % (context.project_id))
key_name = self.setup_key_pair(context)
group_name = self.setup_security_group(context)
- instance_type = flavors.get_instance_type_by_name(
- CONF.vpn_instance_type)
+ instance_type = flavors.get_flavor_by_name(
+ CONF.vpn_flavor)
instance_name = '%s%s' % (context.project_id, CONF.vpn_key_suffix)
user_data = self.get_encoded_zip(context.project_id)
return self.compute_api.create(context,
diff --git a/nova/cmd/baremetal_deploy_helper.py b/nova/cmd/baremetal_deploy_helper.py
index 765af8f31..539d5b517 100644
--- a/nova/cmd/baremetal_deploy_helper.py
+++ b/nova/cmd/baremetal_deploy_helper.py
@@ -201,14 +201,14 @@ def deploy(address, port, iqn, lun, image_path, pxe_config_path,
login_iscsi(address, port, iqn)
try:
root_uuid = work_on_disk(dev, root_mb, swap_mb, image_path)
- except processutils.ProcessExecutionError, err:
+ switch_pxe_config(pxe_config_path, root_uuid)
+ except processutils.ProcessExecutionError as err:
# Log output if there was a error
LOG.error("Cmd : %s" % err.cmd)
LOG.error("StdOut : %s" % err.stdout)
LOG.error("StdErr : %s" % err.stderr)
finally:
logout_iscsi(address, port, iqn)
- switch_pxe_config(pxe_config_path, root_uuid)
# Ensure the node started netcat on the port after POST the request.
time.sleep(3)
notify(address, 10000)
diff --git a/nova/cmd/manage.py b/nova/cmd/manage.py
index 599b9a299..1dc57aea0 100644
--- a/nova/cmd/manage.py
+++ b/nova/cmd/manage.py
@@ -617,7 +617,7 @@ class VmCommands(object):
context.get_admin_context(), host)
for instance in instances:
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
print ("%-10s %-15s %-10s %-10s %-26s %-9s %-9s %-9s"
" %-10s %-10s %-10s %-5d" % (instance['display_name'],
instance['host'],
@@ -928,9 +928,9 @@ class InstanceTypeCommands(object):
"""Lists all active or specific instance types / flavors."""
try:
if name is None:
- inst_types = flavors.get_all_types()
+ inst_types = flavors.get_all_flavors()
else:
- inst_types = flavors.get_instance_type_by_name(name)
+ inst_types = flavors.get_flavor_by_name(name)
except db_exc.DBError as e:
_db_error(e)
if isinstance(inst_types.values()[0], dict):
@@ -946,7 +946,7 @@ class InstanceTypeCommands(object):
"""Add key/value pair to specified instance type's extra_specs."""
try:
try:
- inst_type = flavors.get_instance_type_by_name(name)
+ inst_type = flavors.get_flavor_by_name(name)
except exception.InstanceTypeNotFoundByName as e:
print e
return(2)
@@ -968,7 +968,7 @@ class InstanceTypeCommands(object):
"""Delete the specified extra spec for instance type."""
try:
try:
- inst_type = flavors.get_instance_type_by_name(name)
+ inst_type = flavors.get_flavor_by_name(name)
except exception.InstanceTypeNotFoundByName as e:
print e
return(2)
diff --git a/nova/cmd/novnc.py b/nova/cmd/novnc.py
new file mode 100644
index 000000000..c381984da
--- /dev/null
+++ b/nova/cmd/novnc.py
@@ -0,0 +1,44 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright (c) 2012 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from oslo.config import cfg
+
+opts = [
+ cfg.BoolOpt('record',
+ default=False,
+ help='Record sessions to FILE.[session_number]'),
+ cfg.BoolOpt('daemon',
+ default=False,
+ help='Become a daemon (background process)'),
+ cfg.BoolOpt('ssl_only',
+ default=False,
+ help='Disallow non-encrypted connections'),
+ cfg.BoolOpt('source_is_ipv6',
+ default=False,
+ help='Source is ipv6'),
+ cfg.StrOpt('cert',
+ default='self.pem',
+ help='SSL certificate file'),
+ cfg.StrOpt('key',
+ default=None,
+ help='SSL key file (if separate from cert)'),
+ cfg.StrOpt('web',
+ default='/usr/share/spice-html5',
+ help='Run webserver on same port. Serve files from DIR.'),
+ ]
+
+cfg.CONF.register_cli_opts(opts)
diff --git a/nova/cmd/novncproxy.py b/nova/cmd/novncproxy.py
index 449aea76e..2abba7c90 100644
--- a/nova/cmd/novncproxy.py
+++ b/nova/cmd/novncproxy.py
@@ -30,27 +30,6 @@ from nova.console import websocketproxy
opts = [
- cfg.BoolOpt('record',
- default=False,
- help='Record sessions to FILE.[session_number]'),
- cfg.BoolOpt('daemon',
- default=False,
- help='Become a daemon (background process)'),
- cfg.BoolOpt('ssl_only',
- default=False,
- help='Disallow non-encrypted connections'),
- cfg.BoolOpt('source_is_ipv6',
- default=False,
- help='Source is ipv6'),
- cfg.StrOpt('cert',
- default='self.pem',
- help='SSL certificate file'),
- cfg.StrOpt('key',
- default=None,
- help='SSL key file (if separate from cert)'),
- cfg.StrOpt('web',
- default='/usr/share/novnc',
- help='Run webserver on same port. Serve files from DIR.'),
cfg.StrOpt('novncproxy_host',
default='0.0.0.0',
help='Host on which to listen for incoming requests'),
@@ -61,11 +40,18 @@ opts = [
CONF = cfg.CONF
CONF.register_cli_opts(opts)
-CONF.import_opt('debug', 'nova.openstack.common.log')
+CONF.import_opt('record', 'nova.cmd.novnc')
+CONF.import_opt('daemon', 'nova.cmd.novnc')
+CONF.import_opt('ssl_only', 'nova.cmd.novnc')
+CONF.import_opt('source_is_ipv6', 'nova.cmd.novnc')
+CONF.import_opt('cert', 'nova.cmd.novnc')
+CONF.import_opt('key', 'nova.cmd.novnc')
+CONF.import_opt('web', 'nova.cmd.novnc')
def main():
# Setup flags
+ CONF.set_defaults(CONF, web='/usr/share/novnc')
config.parse_args(sys.argv)
if CONF.ssl_only and not os.path.exists(CONF.cert):
diff --git a/nova/cmd/spicehtml5proxy.py b/nova/cmd/spicehtml5proxy.py
index c6f2be53d..561c6e7aa 100644
--- a/nova/cmd/spicehtml5proxy.py
+++ b/nova/cmd/spicehtml5proxy.py
@@ -28,29 +28,7 @@ from oslo.config import cfg
from nova import config
from nova.console import websocketproxy
-
opts = [
- cfg.BoolOpt('record',
- default=False,
- help='Record sessions to FILE.[session_number]'),
- cfg.BoolOpt('daemon',
- default=False,
- help='Become a daemon (background process)'),
- cfg.BoolOpt('ssl_only',
- default=False,
- help='Disallow non-encrypted connections'),
- cfg.BoolOpt('source_is_ipv6',
- default=False,
- help='Source is ipv6'),
- cfg.StrOpt('cert',
- default='self.pem',
- help='SSL certificate file'),
- cfg.StrOpt('key',
- default=None,
- help='SSL key file (if separate from cert)'),
- cfg.StrOpt('web',
- default='/usr/share/spice-html5',
- help='Run webserver on same port. Serve files from DIR.'),
cfg.StrOpt('spicehtml5proxy_host',
default='0.0.0.0',
help='Host on which to listen for incoming requests'),
@@ -59,13 +37,19 @@ opts = [
help='Port on which to listen for incoming requests'),
]
+CONF = cfg.CONF
+CONF.register_cli_opts(opts)
+CONF.import_opt('record', 'nova.cmd.novnc')
+CONF.import_opt('daemon', 'nova.cmd.novnc')
+CONF.import_opt('ssl_only', 'nova.cmd.novnc')
+CONF.import_opt('source_is_ipv6', 'nova.cmd.novnc')
+CONF.import_opt('cert', 'nova.cmd.novnc')
+CONF.import_opt('key', 'nova.cmd.novnc')
+CONF.import_opt('web', 'nova.cmd.novnc')
+
def main():
# Setup flags
-
- CONF = cfg.CONF
- CONF.register_cli_opts(opts)
- CONF.import_opt('debug', 'nova.openstack.common.log')
config.parse_args(sys.argv)
if CONF.ssl_only and not os.path.exists(CONF.cert):
diff --git a/nova/compute/__init__.py b/nova/compute/__init__.py
index baa957ca8..5d17dcef9 100644
--- a/nova/compute/__init__.py
+++ b/nova/compute/__init__.py
@@ -20,21 +20,65 @@ import oslo.config.cfg
# Importing full names to not pollute the namespace and cause possible
# collisions with use of 'from nova.compute import <foo>' elsewhere.
+import nova.exception
import nova.openstack.common.importutils
+from nova.openstack.common import log as logging
+
+LOG = logging.getLogger(__name__)
_compute_opts = [
oslo.config.cfg.StrOpt('compute_api_class',
default='nova.compute.api.API',
help='The full class name of the '
- 'compute API class to use'),
+ 'compute API class to use (deprecated)'),
]
-
oslo.config.cfg.CONF.register_opts(_compute_opts)
+oslo.config.cfg.CONF.import_opt('enable',
+ 'nova.cells.opts',
+ group='cells')
+
+oslo.config.cfg.CONF.import_opt('cell_type',
+ 'nova.cells.opts',
+ group='cells')
+
+COMPUTE_API = 'nova.compute.api.API'
+COMPUTE_CELL_API = 'nova.compute.cells_api.ComputeCellsAPI'
+
+
+def get_compute_api_class_name():
+ """
+ Returns the name of compute API class.
+ """
+ if not oslo.config.cfg.CONF.cells.enable:
+ return COMPUTE_API
+
+ cell_type = oslo.config.cfg.CONF.cells.cell_type
+ # If cell is enabled and cell_type option is not set (and thus get the
+ # default value None), use the deprecated compute_api_class option.
+ if cell_type is None:
+ compute_api_class_name = oslo.config.cfg.CONF.compute_api_class
+ LOG.deprecated(_("The compute_api_class is now deprecated and "
+ "will be removed in next release. Please set the"
+ " cell_type option to api or compute"))
+ # If cell is enabled and this cell is an API-cell, use cell specific
+ # computeAPI.
+ elif cell_type == 'api':
+ compute_api_class_name = COMPUTE_CELL_API
+ # If cell is enabled and this cell is a COMPUTE-cell, use normal
+ # computeAPI.
+ elif cell_type == 'compute':
+ compute_api_class_name = COMPUTE_API
+ # Otherwise, raise exception for invalid cell_type
+ else:
+ msg = _("cell_type must be configured as 'api' or 'compute'")
+ raise nova.exception.InvalidInput(reason=msg)
+ return compute_api_class_name
+
def API(*args, **kwargs):
importutils = nova.openstack.common.importutils
- class_name = oslo.config.cfg.CONF.compute_api_class
+ class_name = get_compute_api_class_name()
return importutils.import_object(class_name, *args, **kwargs)
@@ -44,7 +88,7 @@ def HostAPI(*args, **kwargs):
api
"""
importutils = nova.openstack.common.importutils
- compute_api_class_name = oslo.config.cfg.CONF.compute_api_class
+ compute_api_class_name = get_compute_api_class_name()
compute_api_class = importutils.import_class(compute_api_class_name)
class_name = compute_api_class.__module__ + ".HostAPI"
return importutils.import_object(class_name, *args, **kwargs)
@@ -56,7 +100,7 @@ def InstanceActionAPI(*args, **kwargs):
configured compute api.
"""
importutils = nova.openstack.common.importutils
- compute_api_class_name = oslo.config.cfg.CONF.compute_api_class
+ compute_api_class_name = get_compute_api_class_name()
compute_api_class = importutils.import_class(compute_api_class_name)
class_name = compute_api_class.__module__ + ".InstanceActionAPI"
return importutils.import_object(class_name, *args, **kwargs)
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 1b00e74b1..75a438fa6 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -25,7 +25,6 @@ import base64
import functools
import re
import string
-import time
import uuid
from oslo.config import cfg
@@ -108,6 +107,8 @@ MAX_USERDATA_SIZE = 65535
QUOTAS = quota.QUOTAS
RO_SECURITY_GROUPS = ['default']
+SM_IMAGE_PROP_PREFIX = "image_"
+
def check_instance_state(vm_state=None, task_state=(None,)):
"""Decorator to check VM and/or task state before entry to API functions.
@@ -195,10 +196,20 @@ class API(base.Base):
self.consoleauth_rpcapi = consoleauth_rpcapi.ConsoleAuthAPI()
self.scheduler_rpcapi = scheduler_rpcapi.SchedulerAPI()
self.compute_rpcapi = compute_rpcapi.ComputeAPI()
+ self._compute_task_api = None
self.servicegroup_api = servicegroup.API()
super(API, self).__init__(**kwargs)
+ @property
+ def compute_task_api(self):
+ if self._compute_task_api is None:
+ # TODO(alaski): Remove calls into here from conductor manager so
+ # that this isn't necessary. #1180540
+ from nova import conductor
+ self._compute_task_api = conductor.ComputeTaskAPI()
+ return self._compute_task_api
+
def _instance_update(self, context, instance_uuid, **kwargs):
"""Update an instance in the database using kwargs as value."""
@@ -477,53 +488,75 @@ class API(base.Base):
return instance
def _check_config_drive(self, context, config_drive):
- bool_like = True
try:
- strutils.bool_from_string(config_drive, strict=True)
+ bool_like = strutils.bool_from_string(config_drive, strict=True)
except ValueError:
bool_like = False
if config_drive is None:
return None, None
- elif bool_like and config_drive not in (0, 1, '0', '1'):
- # NOTE(sirp): '0' and '1' could be a bool value or an ID. Since
- # there are many other ways to specify bools (e.g. 't', 'f'), it's
- # better to treat as an ID.
- return None, config_drive
+ elif bool_like:
+ return None, bool_like
else:
cd_image_service, config_drive_id = \
glance.get_remote_image_service(context, config_drive)
cd_image_service.show(context, config_drive_id)
return config_drive_id, None
- def _validate_and_provision_instance(self, context, instance_type,
- image_href, kernel_id, ramdisk_id,
- min_count, max_count,
- display_name, display_description,
- key_name, key_data, security_groups,
+ def _check_requested_image(self, context, image_id, image, instance_type):
+ if not image:
+ # Image checks don't apply when building from volume
+ return
+
+ if image['status'] != 'active':
+ raise exception.ImageNotActive(image_id=image_id)
+
+ if instance_type['memory_mb'] < int(image.get('min_ram') or 0):
+ raise exception.InstanceTypeMemoryTooSmall()
+
+ # NOTE(johannes): root_gb is allowed to be 0 for legacy reasons
+ # since libvirt interpreted the value differently than other
+ # drivers. A value of 0 means don't check size.
+ root_gb = instance_type['root_gb']
+ if root_gb:
+ if int(image.get('size') or 0) > root_gb * (1024 ** 3):
+ raise exception.InstanceTypeDiskTooSmall()
+
+ if int(image.get('min_disk') or 0) > root_gb:
+ raise exception.InstanceTypeDiskTooSmall()
+
+ def _get_image(self, context, image_href):
+ if not image_href:
+ return None, {}
+
+ (image_service, image_id) = glance.get_remote_image_service(
+ context, image_href)
+ image = image_service.show(context, image_id)
+ return image_id, image
+
+ def _checks_for_create_and_rebuild(self, context, image_id, image,
+ instance_type, metadata,
+ files_to_inject):
+ self._check_metadata_properties_quota(context, metadata)
+ self._check_injected_file_quota(context, files_to_inject)
+ if image_id is not None:
+ self._check_requested_image(context, image_id,
+ image, instance_type)
+
+ def _validate_and_build_base_options(self, context, instance_type,
+ image, image_href, image_id,
+ kernel_id, ramdisk_id, min_count,
+ max_count, display_name,
+ display_description, key_name,
+ key_data, security_groups,
availability_zone, user_data,
metadata, injected_files,
access_ip_v4, access_ip_v6,
requested_networks, config_drive,
block_device_mapping,
- auto_disk_config, reservation_id,
- scheduler_hints):
+ auto_disk_config, reservation_id):
"""Verify all the input parameters regardless of the provisioning
strategy being performed."""
-
- if not metadata:
- metadata = {}
- if not security_groups:
- security_groups = ['default']
-
- if not instance_type:
- instance_type = flavors.get_default_instance_type()
- if not min_count:
- min_count = 1
- if not max_count:
- max_count = min_count
-
- block_device_mapping = block_device_mapping or []
if min_count > 1 or max_count > 1:
if any(map(lambda bdm: 'volume_id' in bdm, block_device_mapping)):
msg = _('Cannot attach one or more volumes to multiple'
@@ -546,101 +579,87 @@ class API(base.Base):
except base64.binascii.Error:
raise exception.InstanceUserDataMalformed()
+ self._checks_for_create_and_rebuild(context, image_id, image,
+ instance_type, metadata, injected_files)
+
+ self._check_requested_secgroups(context, security_groups)
+ self._check_requested_networks(context, requested_networks)
+
+ kernel_id, ramdisk_id = self._handle_kernel_and_ramdisk(
+ context, kernel_id, ramdisk_id, image)
+
+ config_drive_id, config_drive = self._check_config_drive(
+ context, config_drive)
+
+ if key_data is None and key_name:
+ key_pair = self.db.key_pair_get(context, context.user_id,
+ key_name)
+ key_data = key_pair['public_key']
+
+ root_device_name = block_device.properties_root_device_name(
+ image.get('properties', {}))
+
+ system_metadata = flavors.save_flavor_info(
+ dict(), instance_type)
+
+ base_options = {
+ 'reservation_id': reservation_id,
+ 'image_ref': image_href,
+ 'kernel_id': kernel_id or '',
+ 'ramdisk_id': ramdisk_id or '',
+ 'power_state': power_state.NOSTATE,
+ 'vm_state': vm_states.BUILDING,
+ 'config_drive_id': config_drive_id or '',
+ 'config_drive': config_drive or '',
+ 'user_id': context.user_id,
+ 'project_id': context.project_id,
+ 'instance_type_id': instance_type['id'],
+ 'memory_mb': instance_type['memory_mb'],
+ 'vcpus': instance_type['vcpus'],
+ 'root_gb': instance_type['root_gb'],
+ 'ephemeral_gb': instance_type['ephemeral_gb'],
+ 'display_name': display_name,
+ 'display_description': display_description or '',
+ 'user_data': user_data,
+ 'key_name': key_name,
+ 'key_data': key_data,
+ 'locked': False,
+ 'metadata': metadata,
+ 'access_ip_v4': access_ip_v4,
+ 'access_ip_v6': access_ip_v6,
+ 'availability_zone': availability_zone,
+ 'root_device_name': root_device_name,
+ 'progress': 0,
+ 'system_metadata': system_metadata}
+
+ options_from_image = self._inherit_properties_from_image(
+ image, auto_disk_config)
+
+ base_options.update(options_from_image)
+
+ return base_options
+
+ def _build_filter_properties(self, context, scheduler_hints, forced_host,
+ forced_node, instance_type):
+ filter_properties = dict(scheduler_hints=scheduler_hints)
+ filter_properties['instance_type'] = instance_type
+ if forced_host:
+ check_policy(context, 'create:forced_host', {})
+ filter_properties['force_hosts'] = [forced_host]
+ if forced_node:
+ check_policy(context, 'create:forced_host', {})
+ filter_properties['force_nodes'] = [forced_node]
+ return filter_properties
+
+ def _provision_instances(self, context, instance_type, min_count,
+ max_count, base_options, image, security_groups,
+ block_device_mapping):
# Reserve quotas
num_instances, quota_reservations = self._check_num_instances_quota(
context, instance_type, min_count, max_count)
-
- # Try to create the instance
+ LOG.debug(_("Going to run %s instances...") % num_instances)
+ instances = []
try:
- instances = []
- instance_uuids = []
-
- self._check_metadata_properties_quota(context, metadata)
- self._check_injected_file_quota(context, injected_files)
- self._check_requested_secgroups(context, security_groups)
- self._check_requested_networks(context, requested_networks)
-
- if image_href:
- (image_service, image_id) = glance.get_remote_image_service(
- context, image_href)
- image = image_service.show(context, image_id)
- if image['status'] != 'active':
- raise exception.ImageNotActive(image_id=image_id)
- else:
- image = {}
-
- if instance_type['memory_mb'] < int(image.get('min_ram') or 0):
- raise exception.InstanceTypeMemoryTooSmall()
- if instance_type['root_gb'] < int(image.get('min_disk') or 0):
- raise exception.InstanceTypeDiskTooSmall()
-
- kernel_id, ramdisk_id = self._handle_kernel_and_ramdisk(
- context, kernel_id, ramdisk_id, image)
-
- config_drive_id, config_drive = self._check_config_drive(
- context, config_drive)
-
- if key_data is None and key_name:
- key_pair = self.db.key_pair_get(context, context.user_id,
- key_name)
- key_data = key_pair['public_key']
-
- root_device_name = block_device.properties_root_device_name(
- image.get('properties', {}))
-
- availability_zone, forced_host, forced_node = \
- self._handle_availability_zone(availability_zone)
-
- system_metadata = flavors.save_instance_type_info(
- dict(), instance_type)
-
- base_options = {
- 'reservation_id': reservation_id,
- 'image_ref': image_href,
- 'kernel_id': kernel_id or '',
- 'ramdisk_id': ramdisk_id or '',
- 'power_state': power_state.NOSTATE,
- 'vm_state': vm_states.BUILDING,
- 'config_drive_id': config_drive_id or '',
- 'config_drive': config_drive or '',
- 'user_id': context.user_id,
- 'project_id': context.project_id,
- 'launch_time': time.strftime('%Y-%m-%dT%H:%M:%SZ',
- time.gmtime()),
- 'instance_type_id': instance_type['id'],
- 'memory_mb': instance_type['memory_mb'],
- 'vcpus': instance_type['vcpus'],
- 'root_gb': instance_type['root_gb'],
- 'ephemeral_gb': instance_type['ephemeral_gb'],
- 'display_name': display_name,
- 'display_description': display_description or '',
- 'user_data': user_data,
- 'key_name': key_name,
- 'key_data': key_data,
- 'locked': False,
- 'metadata': metadata,
- 'access_ip_v4': access_ip_v4,
- 'access_ip_v6': access_ip_v6,
- 'availability_zone': availability_zone,
- 'root_device_name': root_device_name,
- 'progress': 0,
- 'system_metadata': system_metadata}
-
- options_from_image = self._inherit_properties_from_image(
- image, auto_disk_config)
-
- base_options.update(options_from_image)
-
- LOG.debug(_("Going to run %s instances...") % num_instances)
-
- filter_properties = dict(scheduler_hints=scheduler_hints)
- if forced_host:
- check_policy(context, 'create:forced_host', {})
- filter_properties['force_hosts'] = [forced_host]
- if forced_node:
- check_policy(context, 'create:forced_host', {})
- filter_properties['force_nodes'] = [forced_node]
-
for i in xrange(num_instances):
options = base_options.copy()
instance = self.create_db_entry_for_new_instance(
@@ -649,7 +668,6 @@ class API(base.Base):
num_instances, i)
instances.append(instance)
- instance_uuids.append(instance['uuid'])
self._validate_bdm(context, instance)
# send a state update notification for the initial create to
# show it going from non-existent to BUILDING
@@ -661,30 +679,40 @@ class API(base.Base):
except Exception:
with excutils.save_and_reraise_exception():
try:
- for instance_uuid in instance_uuids:
- self.db.instance_destroy(context, instance_uuid)
+ for instance in instances:
+ self.db.instance_destroy(context, instance['uuid'])
finally:
QUOTAS.rollback(context, quota_reservations)
# Commit the reservations
QUOTAS.commit(context, quota_reservations)
+ return instances
- request_spec = {
- 'image': jsonutils.to_primitive(image),
- 'instance_properties': base_options,
- 'instance_type': instance_type,
- 'instance_uuids': instance_uuids,
- 'block_device_mapping': block_device_mapping,
- 'security_group': security_groups,
- }
+ def _get_volume(self, context, block_device_mapping):
+ """If we are booting from a volume, we need to get the
+ volume details from Cinder and make sure we pass the
+ metadata back accordingly.
+ """
+ if not block_device_mapping:
+ return {}
- return (instances, request_spec, filter_properties)
+ for bdm in block_device_mapping:
+ if bdm.get('device_name') == "vda":
+ volume_id = bdm.get('volume_id')
+ if volume_id is not None:
+ try:
+ volume = self.volume_api.get(context,
+ volume_id)
+ return volume
+ except Exception:
+ raise exception.InvalidBDMVolume(volume_id)
+ return None
def _create_instance(self, context, instance_type,
image_href, kernel_id, ramdisk_id,
min_count, max_count,
display_name, display_description,
- key_name, key_data, security_group,
+ key_name, key_data, security_groups,
availability_zone, user_data, metadata,
injected_files, admin_password,
access_ip_v4, access_ip_v6,
@@ -695,28 +723,54 @@ class API(base.Base):
strategy being performed and schedule the instance(s) for
creation."""
+ # Normalize and setup some parameters
if reservation_id is None:
reservation_id = utils.generate_uid('r')
+ security_groups = security_groups or ['default']
+ min_count = min_count or 1
+ max_count = max_count or min_count
+ block_device_mapping = block_device_mapping or []
+ if not instance_type:
+ instance_type = flavors.get_default_flavor()
+
+ if image_href:
+ image_id, image = self._get_image(context, image_href)
+ else:
+ image_id = None
+ image = self._get_volume(context,
+ block_device_mapping)
+
+ handle_az = self._handle_availability_zone
+ availability_zone, forced_host, forced_node = handle_az(
+ availability_zone)
+
+ base_options = self._validate_and_build_base_options(context,
+ instance_type, image, image_href, image_id, kernel_id,
+ ramdisk_id, min_count, max_count, display_name,
+ display_description, key_name, key_data, security_groups,
+ availability_zone, user_data, metadata, injected_files,
+ access_ip_v4, access_ip_v6, requested_networks, config_drive,
+ block_device_mapping, auto_disk_config, reservation_id)
- (instances, request_spec, filter_properties) = \
- self._validate_and_provision_instance(context, instance_type,
- image_href, kernel_id, ramdisk_id, min_count,
- max_count, display_name, display_description,
- key_name, key_data, security_group, availability_zone,
- user_data, metadata, injected_files, access_ip_v4,
- access_ip_v6, requested_networks, config_drive,
- block_device_mapping, auto_disk_config,
- reservation_id, scheduler_hints)
+ instances = self._provision_instances(context, instance_type,
+ min_count, max_count, base_options, image, security_groups,
+ block_device_mapping)
+
+ filter_properties = self._build_filter_properties(context,
+ scheduler_hints, forced_host, forced_node, instance_type)
for instance in instances:
self._record_action_start(context, instance,
instance_actions.CREATE)
- self.scheduler_rpcapi.run_instance(context,
- request_spec=request_spec,
- admin_password=admin_password, injected_files=injected_files,
- requested_networks=requested_networks, is_first_time=True,
- filter_properties=filter_properties)
+ self.compute_task_api.build_instances(context,
+ instances=instances, image=image,
+ filter_properties=filter_properties,
+ admin_password=admin_password,
+ injected_files=injected_files,
+ requested_networks=requested_networks,
+ security_groups=security_groups,
+ block_device_mapping=block_device_mapping)
return (instances, reservation_id)
@@ -806,8 +860,9 @@ class API(base.Base):
values)
def _validate_bdm(self, context, instance):
- for bdm in self.db.block_device_mapping_get_all_by_instance(
- context, instance['uuid']):
+ for bdm in block_device.legacy_mapping(
+ self.db.block_device_mapping_get_all_by_instance(
+ context, instance['uuid'])):
# NOTE(vish): For now, just make sure the volumes are accessible.
# Additionally, check that the volume can be attached to this
# instance.
@@ -843,6 +898,16 @@ class API(base.Base):
continue
self._update_block_device_mapping(context,
instance_type, instance_uuid, mapping)
+ # NOTE(ndipanov): Create an image bdm - at the moment
+ # this is not used but is done for easier transition
+ # in the future.
+ if (instance['image_ref'] and not
+ self.is_volume_backed_instance(context, instance, None)):
+ image_bdm = block_device.create_image_bdm(instance['image_ref'])
+ image_bdm['instance_uuid'] = instance_uuid
+ self.db.block_device_mapping_update_or_create(context,
+ image_bdm,
+ legacy=False)
def _populate_instance_shutdown_terminate(self, instance, image,
block_device_mapping):
@@ -895,9 +960,10 @@ class API(base.Base):
# Store image properties so we can use them later
# (for notifications, etc). Only store what we can.
instance.setdefault('system_metadata', {})
+ prefix_format = SM_IMAGE_PROP_PREFIX + '%s'
for key, value in image_properties.iteritems():
- new_value = str(value)[:255]
- instance['system_metadata']['image_%s' % key] = new_value
+ new_value = unicode(value)[:255]
+ instance['system_metadata'][prefix_format % key] = new_value
# Keep a record of the original base image that this
# image's instance is derived from:
@@ -1050,8 +1116,9 @@ class API(base.Base):
return
host = instance['host']
- bdms = self.db.block_device_mapping_get_all_by_instance(
- context, instance['uuid'])
+ bdms = block_device.legacy_mapping(
+ self.db.block_device_mapping_get_all_by_instance(
+ context, instance['uuid']))
reservations = None
if context.is_admin and context.project_id != instance['project_id']:
@@ -1177,9 +1244,8 @@ class API(base.Base):
new_instance['instance_type_id'] ==
migration_ref['new_instance_type_id']):
old_inst_type_id = migration_ref['old_instance_type_id']
- get_inst_type_by_id = flavors.get_instance_type
try:
- old_inst_type = get_inst_type_by_id(old_inst_type_id)
+ old_inst_type = flavors.get_flavor(old_inst_type_id)
except exception.InstanceTypeNotFound:
LOG.warning(_("instance type %(old_inst_type_id)d "
"not found") % locals())
@@ -1273,7 +1339,7 @@ class API(base.Base):
def restore(self, context, instance):
"""Restore a previously deleted (but not reclaimed) instance."""
# Reserve quotas
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
num_instances, quota_reservations = self._check_num_instances_quota(
context, instance_type, 1, 1)
@@ -1310,7 +1376,7 @@ class API(base.Base):
@check_instance_lock
@check_instance_host
@check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.RESCUED,
- vm_states.ERROR, vm_states.STOPPED],
+ vm_states.ERROR],
task_state=[None])
def stop(self, context, instance, do_cast=True):
"""Stop an instance."""
@@ -1353,7 +1419,7 @@ class API(base.Base):
#NOTE(bcwaldon): this doesn't really belong in this class
def get_instance_type(self, context, instance_type_id):
"""Get an instance type by instance type id."""
- return flavors.get_instance_type(instance_type_id)
+ return flavors.get_flavor(instance_type_id)
def get(self, context, instance_id):
"""Get a single instance with the given instance_id."""
@@ -1410,7 +1476,7 @@ class API(base.Base):
filters = {}
def _remap_flavor_filter(flavor_id):
- instance_type = flavors.get_instance_type_by_flavor_id(
+ instance_type = flavors.get_flavor_by_flavor_id(
flavor_id)
filters['instance_type_id'] = instance_type['id']
@@ -1593,11 +1659,10 @@ class API(base.Base):
properties.update(extra_properties or {})
# Now inherit image properties from the base image
- prefix = 'image_'
for key, value in system_meta.items():
# Trim off the image_ prefix
- if key.startswith(prefix):
- key = key[len(prefix):]
+ if key.startswith(SM_IMAGE_PROP_PREFIX):
+ key = key[len(SM_IMAGE_PROP_PREFIX):]
# Skip properties that are non-inheritable
if key in CONF.non_inheritable_image_properties:
@@ -1627,7 +1692,8 @@ class API(base.Base):
properties['root_device_name'] = instance['root_device_name']
properties.update(extra_properties or {})
- bdms = self.get_instance_bdms(context, instance)
+ bdms = block_device.legacy_mapping(
+ self.get_instance_bdms(context, instance))
mapping = []
for bdm in bdms:
@@ -1689,7 +1755,7 @@ class API(base.Base):
#disk format of vhd is non-shrinkable
if orig_image.get('disk_format') == 'vhd':
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
min_disk = instance_type['root_gb']
else:
#set new image values to the original image values
@@ -1700,8 +1766,9 @@ class API(base.Base):
return min_ram, min_disk
def _get_block_device_info(self, context, instance_uuid):
- bdms = self.db.block_device_mapping_get_all_by_instance(context,
- instance_uuid)
+ bdms = block_device.legacy_mapping(
+ self.db.block_device_mapping_get_all_by_instance(context,
+ instance_uuid))
block_device_mapping = []
for bdm in bdms:
if not bdm['volume_id']:
@@ -1764,27 +1831,14 @@ class API(base.Base):
def rebuild(self, context, instance, image_href, admin_password, **kwargs):
"""Rebuild the given instance with the provided attributes."""
orig_image_ref = instance['image_ref'] or ''
-
files_to_inject = kwargs.pop('files_to_inject', [])
- self._check_injected_file_quota(context, files_to_inject)
-
metadata = kwargs.get('metadata', {})
- self._check_metadata_properties_quota(context, metadata)
+ instance_type = flavors.extract_flavor(instance)
- if image_href:
- (image_service, image_id) = glance.get_remote_image_service(
- context, image_href)
- image = image_service.show(context, image_id)
- if image['status'] != 'active':
- raise exception.ImageNotActive(image_id=image_id)
- else:
- image = {}
+ image_id, image = self._get_image(context, image_href)
- instance_type = flavors.extract_instance_type(instance)
- if instance_type['memory_mb'] < int(image.get('min_ram') or 0):
- raise exception.InstanceTypeMemoryTooSmall()
- if instance_type['root_gb'] < int(image.get('min_disk') or 0):
- raise exception.InstanceTypeDiskTooSmall()
+ self._checks_for_create_and_rebuild(context, image_id, image,
+ instance_type, metadata, files_to_inject)
kernel_id, ramdisk_id = self._handle_kernel_and_ramdisk(
context, None, None, image)
@@ -1807,12 +1861,12 @@ class API(base.Base):
orig_sys_metadata = dict(sys_metadata)
# Remove the old keys
for key in sys_metadata.keys():
- if key.startswith('image_'):
+ if key.startswith(SM_IMAGE_PROP_PREFIX):
del sys_metadata[key]
# Add the new ones
for key, value in image.get('properties', {}).iteritems():
- new_value = str(value)[:255]
- sys_metadata['image_%s' % key] = new_value
+ new_value = unicode(value)[:255]
+ sys_metadata[(SM_IMAGE_PROP_PREFIX + '%s') % key] = new_value
self.db.instance_system_metadata_update(context,
instance['uuid'], sys_metadata, True)
return orig_sys_metadata
@@ -1831,8 +1885,10 @@ class API(base.Base):
# system metadata... and copy in the properties for the new image.
orig_sys_metadata = _reset_image_metadata()
- bdms = self.db.block_device_mapping_get_all_by_instance(context,
- instance['uuid'])
+ bdms = block_device.legacy_mapping(
+ self.db.block_device_mapping_get_all_by_instance(
+ context,
+ instance['uuid']))
self._record_action_start(context, instance, instance_actions.REBUILD)
@@ -1946,9 +2002,9 @@ class API(base.Base):
Calculate deltas required to reverse a prior upsizing
quota adjustment.
"""
- old_instance_type = flavors.get_instance_type(
+ old_instance_type = flavors.get_flavor(
migration_ref['old_instance_type_id'])
- new_instance_type = flavors.get_instance_type(
+ new_instance_type = flavors.get_flavor(
migration_ref['new_instance_type_id'])
return API._resize_quota_delta(context, new_instance_type,
@@ -1959,9 +2015,9 @@ class API(base.Base):
"""
Calculate deltas required to adjust quota for an instance downsize.
"""
- old_instance_type = flavors.extract_instance_type(instance,
+ old_instance_type = flavors.extract_flavor(instance,
'old_')
- new_instance_type = flavors.extract_instance_type(instance,
+ new_instance_type = flavors.extract_flavor(instance,
'new_')
return API._resize_quota_delta(context, new_instance_type,
old_instance_type, 1, -1)
@@ -1981,7 +2037,7 @@ class API(base.Base):
the original flavor_id. If flavor_id is not None, the instance should
be migrated to a new host and resized to the new flavor_id.
"""
- current_instance_type = flavors.extract_instance_type(instance)
+ current_instance_type = flavors.extract_flavor(instance)
# If flavor_id is not provided, only migrate the instance.
if not flavor_id:
@@ -1989,7 +2045,7 @@ class API(base.Base):
instance=instance)
new_instance_type = current_instance_type
else:
- new_instance_type = flavors.get_instance_type_by_flavor_id(
+ new_instance_type = flavors.get_flavor_by_flavor_id(
flavor_id, read_deleted="no")
current_instance_type_name = current_instance_type['name']
@@ -2011,7 +2067,11 @@ class API(base.Base):
raise exception.FlavorNotFound(flavor_id=flavor_id)
# NOTE(markwash): look up the image early to avoid auth problems later
- image = self.image_service.show(context, instance['image_ref'])
+ image_ref = instance.get('image_ref')
+ if image_ref:
+ image = self.image_service.show(context, image_ref)
+ else:
+ image = {}
if same_instance_type and flavor_id:
raise exception.CannotResizeToSameFlavor()
@@ -2163,7 +2223,8 @@ class API(base.Base):
def rescue(self, context, instance, rescue_password=None):
"""Rescue the given instance."""
- bdms = self.get_instance_bdms(context, instance)
+ bdms = block_device.legacy_mapping(
+ self.get_instance_bdms(context, instance))
for bdm in bdms:
if bdm['volume_id']:
volume = self.volume_api.get(context, bdm['volume_id'])
@@ -2457,7 +2518,8 @@ class API(base.Base):
return True
if bdms is None:
- bdms = self.get_instance_bdms(context, instance)
+ bdms = block_device.legacy_mapping(
+ self.get_instance_bdms(context, instance))
for bdm in bdms:
if (block_device.strip_dev(bdm['device_name']) ==
@@ -2477,8 +2539,11 @@ class API(base.Base):
task_state=task_states.MIGRATING,
expected_task_state=None)
- self.scheduler_rpcapi.live_migration(context, block_migration,
- disk_over_commit, instance, host_name)
+ self.compute_task_api.migrate_server(context, instance,
+ scheduler_hint={'host': host_name},
+ live=True, rebuild=False, flavor=None,
+ block_migration=block_migration,
+ disk_over_commit=disk_over_commit)
@check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.STOPPED],
task_state=[None])
@@ -2732,24 +2797,18 @@ class AggregateAPI(base.Base):
class KeypairAPI(base.Base):
- """Sub-set of the Compute Manager API for managing key pairs."""
- def __init__(self, **kwargs):
- super(KeypairAPI, self).__init__(**kwargs)
+ """Subset of the Compute Manager API for managing key pairs."""
- def _validate_keypair_name(self, context, user_id, key_name):
- safechars = "_- " + string.digits + string.ascii_letters
- clean_value = "".join(x for x in key_name if x in safechars)
+ def _validate_new_key_pair(self, context, user_id, key_name):
+ safe_chars = "_- " + string.digits + string.ascii_letters
+ clean_value = "".join(x for x in key_name if x in safe_chars)
if clean_value != key_name:
- msg = _("Keypair name contains unsafe characters")
- raise exception.InvalidKeypair(explanation=msg)
+ raise exception.InvalidKeypair(
+ _("Keypair name contains unsafe characters"))
if not 0 < len(key_name) < 256:
- msg = _('Keypair name must be between 1 and 255 characters long')
- raise exception.InvalidKeypair(explanation=msg)
-
- def import_key_pair(self, context, user_id, key_name, public_key):
- """Import a key pair using an existing public key."""
- self._validate_keypair_name(context, user_id, key_name)
+ raise exception.InvalidKeypair(
+ _('Keypair name must be between 1 and 255 characters long'))
count = QUOTAS.count(context, 'key_pairs', user_id)
try:
@@ -2757,11 +2816,11 @@ class KeypairAPI(base.Base):
except exception.OverQuota:
raise exception.KeypairLimitExceeded()
- try:
- fingerprint = crypto.generate_fingerprint(public_key)
- except exception.InvalidKeypair:
- msg = _("Keypair data is invalid")
- raise exception.InvalidKeypair(explanation=msg)
+ def import_key_pair(self, context, user_id, key_name, public_key):
+ """Import a key pair using an existing public key."""
+ self._validate_new_key_pair(context, user_id, key_name)
+
+ fingerprint = crypto.generate_fingerprint(public_key)
keypair = {'user_id': user_id,
'name': key_name,
@@ -2773,13 +2832,7 @@ class KeypairAPI(base.Base):
def create_key_pair(self, context, user_id, key_name):
"""Create a new key pair."""
- self._validate_keypair_name(context, user_id, key_name)
-
- count = QUOTAS.count(context, 'key_pairs', user_id)
- try:
- QUOTAS.limit_check(context, key_pairs=count + 1)
- except exception.OverQuota:
- raise exception.KeypairLimitExceeded()
+ self._validate_new_key_pair(context, user_id, key_name)
private_key, public_key, fingerprint = crypto.generate_key_pair()
@@ -2788,6 +2841,7 @@ class KeypairAPI(base.Base):
'fingerprint': fingerprint,
'public_key': public_key,
'private_key': private_key}
+
self.db.key_pair_create(context, keypair)
return keypair
@@ -2795,24 +2849,20 @@ class KeypairAPI(base.Base):
"""Delete a keypair by name."""
self.db.key_pair_destroy(context, user_id, key_name)
+ def _get_key_pair(self, key_pair):
+ return {'name': key_pair['name'],
+ 'public_key': key_pair['public_key'],
+ 'fingerprint': key_pair['fingerprint']}
+
def get_key_pairs(self, context, user_id):
"""List key pairs."""
key_pairs = self.db.key_pair_get_all_by_user(context, user_id)
- rval = []
- for key_pair in key_pairs:
- rval.append({
- 'name': key_pair['name'],
- 'public_key': key_pair['public_key'],
- 'fingerprint': key_pair['fingerprint'],
- })
- return rval
+ return [self._get_key_pair(k) for k in key_pairs]
def get_key_pair(self, context, user_id, key_name):
"""Get a keypair by name."""
key_pair = self.db.key_pair_get(context, user_id, key_name)
- return {'name': key_pair['name'],
- 'public_key': key_pair['public_key'],
- 'fingerprint': key_pair['fingerprint']}
+ return self._get_key_pair(key_pair)
class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
@@ -2901,6 +2951,21 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
return group_ref
+ def update_security_group(self, context, security_group,
+ name, description):
+ if security_group['name'] in RO_SECURITY_GROUPS:
+ msg = (_("Unable to update system group '%s'") %
+ security_group['name'])
+ self.raise_invalid_group(msg)
+
+ group = {'name': name,
+ 'description': description}
+
+ group_ref = self.db.security_group_update(context,
+ security_group['id'],
+ group)
+ return group_ref
+
def get(self, context, name=None, id=None, map_exception=False):
self.ensure_default(context)
try:
@@ -3172,11 +3237,12 @@ class SecurityGroupAPI(base.Base, security_group_base.SecurityGroupBase):
self.security_group_rpcapi.refresh_instance_security_rules(
context, instance['host'], instance)
- def get_instance_security_groups(self, context, instance_id,
- instance_uuid=None, detailed=False):
+ def get_instance_security_groups(self, context, instance_uuid,
+ detailed=False):
if detailed:
- return self.db.security_group_get_by_instance(context, instance_id)
- instance = self.db.instance_get(context, instance_id)
+ return self.db.security_group_get_by_instance(context,
+ instance_uuid)
+ instance = self.db.instance_get_by_uuid(context, instance_uuid)
groups = instance.get('security_groups')
if groups:
return [{'name': group['name']} for group in groups]
diff --git a/nova/compute/cells_api.py b/nova/compute/cells_api.py
index 7168313ec..6f1e12480 100644
--- a/nova/compute/cells_api.py
+++ b/nova/compute/cells_api.py
@@ -57,8 +57,18 @@ class SchedulerRPCAPIRedirect(object):
return None
return _noop_rpc_wrapper
- def run_instance(self, context, **kwargs):
- self.cells_rpcapi.schedule_run_instance(context, **kwargs)
+
+class ConductorTaskRPCAPIRedirect(object):
+ def __init__(self, cells_rpcapi_obj):
+ self.cells_rpcapi = cells_rpcapi_obj
+
+ def __getattr__(self, key):
+ def _noop_rpc_wrapper(*args, **kwargs):
+ return None
+ return _noop_rpc_wrapper
+
+ def build_instances(self, context, **kwargs):
+ self.cells_rpcapi.build_instances(context, **kwargs)
class ComputeRPCProxyAPI(compute_rpcapi.ComputeAPI):
@@ -90,6 +100,8 @@ class ComputeCellsAPI(compute_api.API):
self.compute_rpcapi = ComputeRPCAPINoOp()
# Redirect scheduler run_instance to cells.
self.scheduler_rpcapi = SchedulerRPCAPIRedirect(self.cells_rpcapi)
+ # Redirect conductor build_instances to cells
+ self._compute_task_api = ConductorTaskRPCAPIRedirect(self.cells_rpcapi)
def _cell_read_only(self, cell_name):
"""Is the target cell in a read-only mode?"""
@@ -338,12 +350,12 @@ class ComputeCellsAPI(compute_api.API):
# specified flavor_id is valid and exists. We'll need to load
# it again, but that should be safe.
- old_instance_type = flavors.extract_instance_type(instance)
+ old_instance_type = flavors.extract_flavor(instance)
if not flavor_id:
new_instance_type = old_instance_type
else:
- new_instance_type = flavors.get_instance_type_by_flavor_id(
+ new_instance_type = flavors.get_flavor_by_flavor_id(
flavor_id, read_deleted="no")
# NOTE(johannes): Later, when the resize is confirmed or reverted,
@@ -559,6 +571,16 @@ class ComputeCellsAPI(compute_api.API):
pass
return rv
+ @validate_cell
+ def live_migrate(self, context, instance, block_migration,
+ disk_over_commit, host_name):
+ """Migrate a server lively to a new host."""
+ super(ComputeCellsAPI, self).live_migrate(context,
+ instance, block_migration, disk_over_commit, host_name)
+
+ self._cast_to_cells(context, instance, 'live_migrate',
+ block_migration, disk_over_commit, host_name)
+
class HostAPI(compute_api.HostAPI):
"""HostAPI() class for cells.
diff --git a/nova/compute/flavors.py b/nova/compute/flavors.py
index 58dcd3fa5..b58f1f05d 100644
--- a/nova/compute/flavors.py
+++ b/nova/compute/flavors.py
@@ -33,14 +33,16 @@ from nova.openstack.common import log as logging
from nova.openstack.common import strutils
from nova import utils
-instance_type_opts = [
- cfg.StrOpt('default_instance_type',
+flavor_opts = [
+ cfg.StrOpt('default_flavor',
+ # Deprecated in Havana
+ deprecated_name='default_instance_type',
default='m1.small',
- help='default instance type to use, testing only'),
+ help='default flavor to use, testing only'),
]
CONF = cfg.CONF
-CONF.register_opts(instance_type_opts)
+CONF.register_opts(flavor_opts)
LOG = logging.getLogger(__name__)
@@ -52,7 +54,7 @@ def _int_or_none(val):
return int(val)
-system_metadata_instance_type_props = {
+system_metadata_flavor_props = {
'id': int,
'name': str,
'memory_mb': int,
@@ -68,7 +70,7 @@ system_metadata_instance_type_props = {
def create(name, memory, vcpus, root_gb, ephemeral_gb=0, flavorid=None,
swap=0, rxtx_factor=1.0, is_public=True):
- """Creates instance types."""
+ """Creates flavors."""
if not flavorid:
flavorid = uuid.uuid4()
@@ -137,7 +139,7 @@ def create(name, memory, vcpus, root_gb, ephemeral_gb=0, flavorid=None,
def destroy(name):
- """Marks instance types as deleted."""
+ """Marks flavor as deleted."""
try:
assert name is not None
db.instance_type_destroy(context.get_admin_context(), name)
@@ -146,10 +148,10 @@ def destroy(name):
raise exception.InstanceTypeNotFoundByName(instance_type_name=name)
-def get_all_types(ctxt=None, inactive=False, filters=None):
+def get_all_flavors(ctxt=None, inactive=False, filters=None):
"""Get all non-deleted flavors.
- Pass true as argument if you want deleted instance types returned also.
+ Pass true as argument if you want deleted flavors returned also.
"""
if ctxt is None:
ctxt = context.get_admin_context()
@@ -162,19 +164,17 @@ def get_all_types(ctxt=None, inactive=False, filters=None):
inst_type_dict[inst_type['name']] = inst_type
return inst_type_dict
-get_all_flavors = get_all_types
+def get_default_flavor():
+ """Get the default flavor."""
+ name = CONF.default_flavor
+ return get_flavor_by_name(name)
-def get_default_instance_type():
- """Get the default instance type."""
- name = CONF.default_instance_type
- return get_instance_type_by_name(name)
-
-def get_instance_type(instance_type_id, ctxt=None, inactive=False):
- """Retrieves single instance type by id."""
+def get_flavor(instance_type_id, ctxt=None, inactive=False):
+ """Retrieves single flavor by id."""
if instance_type_id is None:
- return get_default_instance_type()
+ return get_default_flavor()
if ctxt is None:
ctxt = context.get_admin_context()
@@ -185,10 +185,10 @@ def get_instance_type(instance_type_id, ctxt=None, inactive=False):
return db.instance_type_get(ctxt, instance_type_id)
-def get_instance_type_by_name(name, ctxt=None):
- """Retrieves single instance type by name."""
+def get_flavor_by_name(name, ctxt=None):
+ """Retrieves single flavor by name."""
if name is None:
- return get_default_instance_type()
+ return get_default_flavor()
if ctxt is None:
ctxt = context.get_admin_context()
@@ -198,8 +198,8 @@ def get_instance_type_by_name(name, ctxt=None):
# TODO(termie): flavor-specific code should probably be in the API that uses
# flavors.
-def get_instance_type_by_flavor_id(flavorid, ctxt=None, read_deleted="yes"):
- """Retrieve instance type by flavorid.
+def get_flavor_by_flavor_id(flavorid, ctxt=None, read_deleted="yes"):
+ """Retrieve flavor by flavorid.
:raises: FlavorNotFound
"""
@@ -209,43 +209,43 @@ def get_instance_type_by_flavor_id(flavorid, ctxt=None, read_deleted="yes"):
return db.instance_type_get_by_flavor_id(ctxt, flavorid)
-def get_instance_type_access_by_flavor_id(flavorid, ctxt=None):
- """Retrieve instance type access list by flavor id."""
+def get_flavor_access_by_flavor_id(flavorid, ctxt=None):
+ """Retrieve flavor access list by flavor id."""
if ctxt is None:
ctxt = context.get_admin_context()
return db.instance_type_access_get_by_flavor_id(ctxt, flavorid)
-def add_instance_type_access(flavorid, projectid, ctxt=None):
- """Add instance type access for project."""
+def add_flavor_access(flavorid, projectid, ctxt=None):
+ """Add flavor access for project."""
if ctxt is None:
ctxt = context.get_admin_context()
return db.instance_type_access_add(ctxt, flavorid, projectid)
-def remove_instance_type_access(flavorid, projectid, ctxt=None):
- """Remove instance type access for project."""
+def remove_flavor_access(flavorid, projectid, ctxt=None):
+ """Remove flavor access for project."""
if ctxt is None:
ctxt = context.get_admin_context()
return db.instance_type_access_remove(ctxt, flavorid, projectid)
-def extract_instance_type(instance, prefix=''):
+def extract_flavor(instance, prefix=''):
"""Create an InstanceType-like object from instance's system_metadata
information."""
instance_type = {}
- sys_meta = utils.metadata_to_dict(instance['system_metadata'])
- for key, type_fn in system_metadata_instance_type_props.items():
+ sys_meta = utils.instance_sys_meta(instance)
+ for key, type_fn in system_metadata_flavor_props.items():
type_key = '%sinstance_type_%s' % (prefix, key)
instance_type[key] = type_fn(sys_meta[type_key])
return instance_type
-def save_instance_type_info(metadata, instance_type, prefix=''):
+def save_flavor_info(metadata, instance_type, prefix=''):
"""Save properties from instance_type into instance's system_metadata,
in the format of:
@@ -255,17 +255,17 @@ def save_instance_type_info(metadata, instance_type, prefix=''):
as stash information about another instance_type for later use (such as
during resize)."""
- for key in system_metadata_instance_type_props.keys():
+ for key in system_metadata_flavor_props.keys():
to_key = '%sinstance_type_%s' % (prefix, key)
metadata[to_key] = instance_type[key]
return metadata
-def delete_instance_type_info(metadata, *prefixes):
- """Delete instance_type information from instance's system_metadata
+def delete_flavor_info(metadata, *prefixes):
+ """Delete flavor instance_type information from instance's system_metadata
by prefix."""
- for key in system_metadata_instance_type_props.keys():
+ for key in system_metadata_flavor_props.keys():
for prefix in prefixes:
to_key = '%sinstance_type_%s' % (prefix, key)
del metadata[to_key]
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 91a814f98..8364722e4 100755
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -394,8 +394,10 @@ class ComputeManager(manager.SchedulerDependentManager):
instance_uuid=instance_uuid)
def _get_instances_on_driver(self, context, filters=None):
- """Return a list of instance records that match the instances found
- on the hypervisor.
+ """Return a list of instance records for the instances found
+ on the hypervisor which satisfy the specified filters. If filters=None
+ return a list of instance records for all the instances found on the
+ hypervisor.
"""
if not filters:
filters = {}
@@ -404,10 +406,6 @@ class ComputeManager(manager.SchedulerDependentManager):
filters['uuid'] = driver_uuids
local_instances = self.conductor_api.instance_get_all_by_filters(
context, filters, columns_to_join=[])
- local_instance_uuids = [inst['uuid'] for inst in local_instances]
- for uuid in set(driver_uuids) - set(local_instance_uuids):
- LOG.error(_('Instance %(uuid)s found in the hypervisor, but '
- 'not in the database'), locals())
return local_instances
except NotImplementedError:
pass
@@ -422,9 +420,6 @@ class ComputeManager(manager.SchedulerDependentManager):
for driver_instance in driver_instances:
instance = name_map.get(driver_instance)
if not instance:
- LOG.error(_('Instance %(driver_instance)s found in the '
- 'hypervisor, but not in the database'),
- locals())
continue
local_instances.append(instance)
return local_instances
@@ -523,10 +518,19 @@ class ComputeManager(manager.SchedulerDependentManager):
if instance['task_state'] == task_states.RESIZE_MIGRATING:
# We crashed during resize/migration, so roll back for safety
try:
+ # NOTE(mriedem): check old_vm_state for STOPPED here, if it's
+ # not in system_metadata we default to True for backwards
+ # compatibility
+ sys_meta = utils.metadata_to_dict(instance['system_metadata'])
+ power_on = sys_meta.get('old_vm_state') != vm_states.STOPPED
+
+ block_dev_info = self._get_instance_volume_block_device_info(
+ context, instance)
+
self.driver.finish_revert_migration(
instance, self._legacy_nw_info(net_info),
- self._get_instance_volume_block_device_info(context,
- instance))
+ block_dev_info, power_on)
+
except Exception as e:
LOG.exception(_('Failed to revert crashed migration'),
instance=instance)
@@ -889,7 +893,13 @@ class ComputeManager(manager.SchedulerDependentManager):
raise exception.BuildAbortException(instance_uuid=instance['uuid'],
reason=msg)
- return self._get_and_check_image_metadata(context, instance)
+ if instance['image_ref']:
+ image_meta = _get_image_meta(context, instance['image_ref'])
+ else:
+ # Instance was started from volume - so no image ref
+ image_meta = {}
+
+ return image_meta
def _build_instance(self, context, request_spec, filter_properties,
requested_networks, injected_files, admin_password, is_first_time,
@@ -944,6 +954,9 @@ class ComputeManager(manager.SchedulerDependentManager):
except exception.InstanceNotFound:
# the instance got deleted during the spawn
with excutils.save_and_reraise_exception():
+ # Make sure the async call finishes
+ if network_info is not None:
+ network_info.wait(do_raise=False)
try:
self._deallocate_network(context, instance)
except Exception:
@@ -951,6 +964,10 @@ class ComputeManager(manager.SchedulerDependentManager):
'for deleted instance')
LOG.exception(msg, instance=instance)
except exception.UnexpectedTaskStateError as e:
+ exc_info = sys.exc_info()
+ # Make sure the async call finishes
+ if network_info is not None:
+ network_info.wait(do_raise=False)
actual_task_state = e.kwargs.get('actual', None)
if actual_task_state == 'deleting':
msg = _('Instance was deleted during spawn.')
@@ -958,10 +975,13 @@ class ComputeManager(manager.SchedulerDependentManager):
raise exception.BuildAbortException(
instance_uuid=instance['uuid'], reason=msg)
else:
- raise
+ raise exc_info[0], exc_info[1], exc_info[2]
except Exception:
exc_info = sys.exc_info()
# try to re-schedule instance:
+ # Make sure the async call finishes
+ if network_info is not None:
+ network_info.wait(do_raise=False)
rescheduled = self._reschedule_or_error(context, instance,
exc_info, requested_networks, admin_password,
injected_files_orig, is_first_time, request_spec,
@@ -1084,60 +1104,6 @@ class ComputeManager(manager.SchedulerDependentManager):
if self.driver.instance_exists(instance['name']):
raise exception.InstanceExists(name=instance['name'])
- def _get_and_check_image_metadata(self, context, instance):
- """Get the image metadata and do basic sanity checks on said image
- like ensuring the image is smaller than the maximum size allowed by
- the instance_type.
-
- The image stored in Glance is potentially compressed, so we use two
- checks to ensure that the size isn't exceeded:
-
- 1) This one - checks compressed size, this a quick check to
- eliminate any images which are obviously too large
-
- 2) Check uncompressed size in nova.virt.xenapi.vm_utils. This
- is a slower check since it requires uncompressing the entire
- image, but is accurate because it reflects the image's
- actual size.
- """
- if instance['image_ref']:
- image_meta = _get_image_meta(context, instance['image_ref'])
- else: # Instance was started from volume - so no image ref
- return {}
-
- try:
- size_bytes = int(image_meta['size'])
- except (KeyError, TypeError, ValueError):
- # Disregard missing field or bad data rather than put the instance
- # into an ERROR state that can't be communicated back to the user
- return image_meta
-
- instance_type = flavors.extract_instance_type(instance)
- allowed_size_gb = instance_type['root_gb']
-
- # NOTE(johannes): root_gb is allowed to be 0 for legacy reasons
- # since libvirt interpreted the value differently than other
- # drivers. A value of 0 means don't check size.
- if not allowed_size_gb:
- return image_meta
-
- allowed_size_bytes = allowed_size_gb * 1024 * 1024 * 1024
-
- image_id = image_meta['id']
- LOG.debug(_("image_id=%(image_id)s, image_size_bytes="
- "%(size_bytes)d, allowed_size_bytes="
- "%(allowed_size_bytes)d") % locals(),
- instance=instance)
-
- if size_bytes > allowed_size_bytes:
- LOG.info(_("Image '%(image_id)s' size %(size_bytes)d exceeded"
- " instance_type allowed size "
- "%(allowed_size_bytes)d")
- % locals(), instance=instance)
- raise exception.ImageTooLarge()
-
- return image_meta
-
def _start_building(self, context, instance):
"""Save the host and launched_on fields and log appropriately."""
LOG.audit(_('Starting instance...'), context=context,
@@ -1150,29 +1116,37 @@ class ComputeManager(manager.SchedulerDependentManager):
def _allocate_network(self, context, instance, requested_networks, macs,
security_groups):
- """Allocate networks for an instance and return the network info."""
+ """Start network allocation asynchronously. Return an instance
+ of NetworkInfoAsyncWrapper that can be used to retrieve the
+ allocated networks when the operation has finished.
+ """
+ # NOTE(comstud): Since we're allocating networks asynchronously,
+ # this task state has little meaning, as we won't be in this
+ # state for very long.
instance = self._instance_update(context, instance['uuid'],
vm_state=vm_states.BUILDING,
task_state=task_states.NETWORKING,
expected_task_state=None)
is_vpn = pipelib.is_vpn_image(instance['image_ref'])
- try:
- # allocate and get network info
- network_info = self.network_api.allocate_for_instance(
- context, instance, vpn=is_vpn,
- requested_networks=requested_networks,
- macs=macs,
- conductor_api=self.conductor_api,
- security_groups=security_groups)
- except Exception:
- with excutils.save_and_reraise_exception():
- LOG.exception(_('Instance failed network setup'),
- instance=instance)
-
- LOG.debug(_('Instance network_info: |%s|'), network_info,
- instance=instance)
- return network_info
+ def async_alloc():
+ LOG.debug(_("Allocating IP information in the background."),
+ instance=instance)
+ try:
+ nwinfo = self.network_api.allocate_for_instance(
+ context, instance, vpn=is_vpn,
+ requested_networks=requested_networks,
+ macs=macs,
+ conductor_api=self.conductor_api,
+ security_groups=security_groups)
+ except Exception:
+ with excutils.save_and_reraise_exception():
+ LOG.exception(_('Instance failed network setup'),
+ instance=instance)
+ LOG.debug(_('Instance network_info: |%s|'), nwinfo,
+ instance=instance)
+ return nwinfo
+ return network_model.NetworkInfoAsyncWrapper(async_alloc)
def _prep_block_device(self, context, instance, bdms):
"""Set up the block device for an instance with error logging."""
@@ -1318,6 +1292,16 @@ class ComputeManager(manager.SchedulerDependentManager):
admin_password, is_first_time, node, instance)
do_run_instance()
+ def _try_deallocate_network(self, context, instance):
+ try:
+ # tear down allocated network structure
+ self._deallocate_network(context, instance)
+ except Exception:
+ with excutils.save_and_reraise_exception():
+ LOG.error(_('Failed to deallocate network for instance.'),
+ instance=instance)
+ self._set_instance_error_state(context, instance['uuid'])
+
def _shutdown_instance(self, context, instance, bdms):
"""Shutdown an instance on this host."""
context = context.elevated()
@@ -1332,21 +1316,28 @@ class ComputeManager(manager.SchedulerDependentManager):
except exception.NetworkNotFound:
network_info = network_model.NetworkInfo()
- try:
- # tear down allocated network structure
- self._deallocate_network(context, instance)
- except Exception:
- with excutils.save_and_reraise_exception():
- LOG.error(_('Failed to deallocate network for instance.'),
- instance=instance)
- self._set_instance_error_state(context, instance['uuid'])
-
# NOTE(vish) get bdms before destroying the instance
vol_bdms = self._get_volume_bdms(bdms)
block_device_info = self._get_instance_volume_block_device_info(
context, instance, bdms=bdms)
- self.driver.destroy(instance, self._legacy_nw_info(network_info),
- block_device_info)
+
+ # NOTE(melwitt): attempt driver destroy before releasing ip, may
+ # want to keep ip allocated for certain failures
+ try:
+ self.driver.destroy(instance, self._legacy_nw_info(network_info),
+ block_device_info)
+ except exception.InstancePowerOffFailure:
+ # if the instance can't power off, don't release the ip
+ with excutils.save_and_reraise_exception():
+ pass
+ except Exception:
+ with excutils.save_and_reraise_exception():
+ # deallocate ip and fail without proceeding to
+ # volume api calls, preserving current behavior
+ self._try_deallocate_network(context, instance)
+
+ self._try_deallocate_network(context, instance)
+
for bdm in vol_bdms:
try:
# NOTE(vish): actual driver detach done in driver.destroy, so
@@ -1380,6 +1371,7 @@ class ComputeManager(manager.SchedulerDependentManager):
as necessary.
"""
instance_uuid = instance['uuid']
+ image = instance['image_ref']
if context.is_admin and context.project_id != instance['project_id']:
project_id = instance['project_id']
@@ -1433,6 +1425,15 @@ class ComputeManager(manager.SchedulerDependentManager):
self._quota_commit(context, reservations, project_id=project_id)
# ensure block device mappings are not leaked
self.conductor_api.block_device_mapping_destroy(context, bdms)
+ # NOTE(ndipanov): Delete the dummy image BDM as well. This will not
+ # be needed once the manager code is using the image
+ if image:
+ # Do not convert to legacy here - we want them all
+ leftover_bdm = \
+ self.conductor_api.block_device_mapping_get_all_by_instance(
+ context, instance)
+ self.conductor_api.block_device_mapping_destroy(context,
+ leftover_bdm)
self._notify_about_instance_usage(context, instance, "delete.end",
system_metadata=system_meta)
@@ -1813,7 +1814,7 @@ class ComputeManager(manager.SchedulerDependentManager):
reboot_type,
block_device_info=block_device_info,
bad_volumes_callback=bad_volumes_callback)
- except Exception, exc:
+ except Exception as exc:
LOG.error(_('Cannot reboot instance: %(exc)s'), locals(),
context=context, instance=instance)
compute_utils.add_instance_fault_from_exc(context,
@@ -2124,15 +2125,15 @@ class ComputeManager(manager.SchedulerDependentManager):
"""
sys_meta = utils.metadata_to_dict(instance['system_metadata'])
if restore_old:
- instance_type = flavors.extract_instance_type(instance,
+ instance_type = flavors.extract_flavor(instance,
'old_')
- sys_meta = flavors.save_instance_type_info(sys_meta,
+ sys_meta = flavors.save_flavor_info(sys_meta,
instance_type)
else:
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
- flavors.delete_instance_type_info(sys_meta, 'old_')
- flavors.delete_instance_type_info(sys_meta, 'new_')
+ flavors.delete_flavor_info(sys_meta, 'old_')
+ flavors.delete_flavor_info(sys_meta, 'new_')
return sys_meta, instance_type
@@ -2150,9 +2151,10 @@ class ComputeManager(manager.SchedulerDependentManager):
with self._error_out_instance_on_exception(context, instance['uuid'],
reservations):
- # NOTE(danms): delete stashed old/new instance_type information
+ # NOTE(danms): delete stashed migration information
sys_meta, instance_type = self._cleanup_stored_instance_types(
migration, instance)
+ sys_meta.pop('old_vm_state', None)
self._instance_update(context, instance['uuid'],
system_metadata=sys_meta)
@@ -2170,8 +2172,24 @@ class ComputeManager(manager.SchedulerDependentManager):
rt = self._get_resource_tracker(migration['source_node'])
rt.drop_resize_claim(instance, prefix='old_')
+ # NOTE(mriedem): The old_vm_state could be STOPPED but the user
+ # might have manually powered up the instance to confirm the
+ # resize/migrate, so we need to check the current power state
+ # on the instance and set the vm_state appropriately. We default
+ # to ACTIVE because if the power state is not SHUTDOWN, we
+ # assume _sync_instance_power_state will clean it up.
+ p_state = self._get_power_state(context, instance)
+ vm_state = None
+ if p_state == power_state.SHUTDOWN:
+ vm_state = vm_states.STOPPED
+ LOG.debug("Resized/migrated instance is powered off. "
+ "Setting vm_state to '%s'." % vm_state,
+ instance=instance)
+ else:
+ vm_state = vm_states.ACTIVE
+
instance = self._instance_update(context, instance['uuid'],
- vm_state=vm_states.ACTIVE,
+ vm_state=vm_state,
task_state=None,
expected_task_state=None)
@@ -2258,8 +2276,8 @@ class ComputeManager(manager.SchedulerDependentManager):
migration=None, migration_id=None):
"""Finishes the second half of reverting a resize.
- Power back on the source instance and revert the resized attributes
- in the database.
+ Bring the original source instance state back (active/shutoff) and
+ revert the resized attributes in the database.
"""
if not migration:
@@ -2275,6 +2293,11 @@ class ComputeManager(manager.SchedulerDependentManager):
sys_meta, instance_type = self._cleanup_stored_instance_types(
migration, instance, True)
+ # NOTE(mriedem): delete stashed old_vm_state information; we
+ # default to ACTIVE for backwards compability if old_vm_state is
+ # not set
+ old_vm_state = sys_meta.pop('old_vm_state', vm_states.ACTIVE)
+
instance = self._instance_update(context,
instance['uuid'],
memory_mb=instance_type['memory_mb'],
@@ -2294,9 +2317,10 @@ class ComputeManager(manager.SchedulerDependentManager):
block_device_info = self._get_instance_volume_block_device_info(
context, instance, bdms=bdms)
+ power_on = old_vm_state != vm_states.STOPPED
self.driver.finish_revert_migration(instance,
self._legacy_nw_info(network_info),
- block_device_info)
+ block_device_info, power_on)
# Just roll back the record. There's no need to resize down since
# the 'old' VM already has the preferred attributes
@@ -2308,8 +2332,17 @@ class ComputeManager(manager.SchedulerDependentManager):
instance,
migration)
- instance = self._instance_update(context, instance['uuid'],
- vm_state=vm_states.ACTIVE, task_state=None)
+ # if the original vm state was STOPPED, set it back to STOPPED
+ LOG.info(_("Updating instance to original state: '%s'") %
+ old_vm_state)
+ if power_on:
+ instance = self._instance_update(context, instance['uuid'],
+ vm_state=vm_states.ACTIVE, task_state=None)
+ else:
+ instance = self._instance_update(
+ context, instance['uuid'],
+ task_state=task_states.STOPPING)
+ self.stop_instance(context, instance)
self._notify_about_instance_usage(
context, instance, "resize.revert.end")
@@ -2346,8 +2379,13 @@ class ComputeManager(manager.SchedulerDependentManager):
# NOTE(danms): Stash the new instance_type to avoid having to
# look it up in the database later
sys_meta = utils.metadata_to_dict(instance['system_metadata'])
- flavors.save_instance_type_info(sys_meta, instance_type,
+ flavors.save_flavor_info(sys_meta, instance_type,
prefix='new_')
+ # NOTE(mriedem): Stash the old vm_state so we can set the
+ # resized/reverted instance back to the same state later.
+ vm_state = instance['vm_state']
+ LOG.debug('Stashing vm_state: %s' % vm_state, instance=instance)
+ sys_meta['old_vm_state'] = vm_state
instance = self._instance_update(context, instance['uuid'],
system_metadata=sys_meta)
@@ -2512,15 +2550,19 @@ class ComputeManager(manager.SchedulerDependentManager):
resize_instance = False
old_instance_type_id = migration['old_instance_type_id']
new_instance_type_id = migration['new_instance_type_id']
- old_instance_type = flavors.extract_instance_type(instance)
+ old_instance_type = flavors.extract_flavor(instance)
sys_meta = utils.metadata_to_dict(instance['system_metadata'])
- flavors.save_instance_type_info(sys_meta,
- old_instance_type,
- prefix='old_')
+ # NOTE(mriedem): Get the old_vm_state so we know if we should
+ # power on the instance. If old_vm_sate is not set we need to default
+ # to ACTIVE for backwards compatibility
+ old_vm_state = sys_meta.get('old_vm_state', vm_states.ACTIVE)
+ flavors.save_flavor_info(sys_meta,
+ old_instance_type,
+ prefix='old_')
if old_instance_type_id != new_instance_type_id:
- instance_type = flavors.extract_instance_type(instance,
+ instance_type = flavors.extract_flavor(instance,
prefix='new_')
- flavors.save_instance_type_info(sys_meta, instance_type)
+ flavors.save_flavor_info(sys_meta, instance_type)
instance = self._instance_update(
context,
@@ -2558,11 +2600,14 @@ class ComputeManager(manager.SchedulerDependentManager):
block_device_info = self._get_instance_volume_block_device_info(
context, instance, bdms=bdms)
+ # NOTE(mriedem): If the original vm_state was STOPPED, we don't
+ # automatically power on the instance after it's migrated
+ power_on = old_vm_state != vm_states.STOPPED
self.driver.finish_migration(context, migration, instance,
disk_info,
self._legacy_nw_info(network_info),
image, resize_instance,
- block_device_info)
+ block_device_info, power_on)
migration = self.conductor_api.migration_update(context,
migration, 'finished')
@@ -3772,19 +3817,6 @@ class ComputeManager(manager.SchedulerDependentManager):
usage['instance'],
last_refreshed=refreshed)
- def _send_volume_usage_notifications(self, context, start_time):
- """Queries vol usage cache table and sends a vol usage notification."""
- # We might have had a quick attach/detach that we missed in
- # the last run of get_all_volume_usage and this one
- # but detach stats will be recorded in db and returned from
- # vol_get_usage_by_time
- vol_usages = self.conductor_api.vol_get_usage_by_time(context,
- start_time)
- for vol_usage in vol_usages:
- notifier.notify(context, 'volume.%s' % self.host, 'volume.usage',
- notifier.INFO,
- compute_utils.usage_volume_info(vol_usage))
-
@periodic_task.periodic_task
def _poll_volume_usage(self, context, start_time=None):
if CONF.volume_usage_poll_interval == 0:
@@ -3813,8 +3845,6 @@ class ComputeManager(manager.SchedulerDependentManager):
refreshed = timeutils.utcnow()
self._update_volume_usage_cache(context, vol_usages, refreshed)
- self._send_volume_usage_notifications(context, start_time)
-
@periodic_task.periodic_task
def _report_driver_status(self, context):
curr_time = time.time()
@@ -4124,14 +4154,15 @@ class ComputeManager(manager.SchedulerDependentManager):
reservations=None):
try:
yield
- except exception.InstanceFaultRollback, error:
+ except exception.InstanceFaultRollback as error:
self._quota_rollback(context, reservations)
msg = _("Setting instance back to ACTIVE after: %s")
LOG.info(msg % error, instance_uuid=instance_uuid)
self._instance_update(context, instance_uuid,
- vm_state=vm_states.ACTIVE)
+ vm_state=vm_states.ACTIVE,
+ task_state=None)
raise error.inner_exception
- except Exception, error:
+ except Exception as error:
with excutils.save_and_reraise_exception():
self._quota_rollback(context, reservations)
msg = _('%s. Setting instance vm_state to ERROR')
diff --git a/nova/compute/resource_tracker.py b/nova/compute/resource_tracker.py
index ef91063b4..43fd80c43 100644
--- a/nova/compute/resource_tracker.py
+++ b/nova/compute/resource_tracker.py
@@ -160,7 +160,7 @@ class ResourceTracker(object):
be done while the COMPUTE_RESOURCES_SEMAPHORE is held so the resource
claim will not be lost if the audit process starts.
"""
- old_instance_type = flavors.extract_instance_type(instance)
+ old_instance_type = flavors.extract_flavor(instance)
return self.conductor_api.migration_create(context, instance,
{'dest_compute': self.host,
@@ -580,7 +580,7 @@ class ResourceTracker(object):
instance_type_id = instance['instance_type_id']
try:
- return flavors.extract_instance_type(instance, prefix)
+ return flavors.extract_flavor(instance, prefix)
except KeyError:
return self.conductor_api.instance_type_get(context,
instance_type_id)
diff --git a/nova/compute/rpcapi.py b/nova/compute/rpcapi.py
index a8d7eaa47..2305810a9 100644
--- a/nova/compute/rpcapi.py
+++ b/nova/compute/rpcapi.py
@@ -422,9 +422,10 @@ class ComputeAPI(nova.openstack.common.rpc.proxy.RpcProxy):
filter_properties=None, node=None):
instance_p = jsonutils.to_primitive(instance)
instance_type_p = jsonutils.to_primitive(instance_type)
+ image_p = jsonutils.to_primitive(image)
self.cast(ctxt, self.make_msg('prep_resize',
instance=instance_p, instance_type=instance_type_p,
- image=image, reservations=reservations,
+ image=image_p, reservations=reservations,
request_spec=request_spec,
filter_properties=filter_properties,
node=node),
diff --git a/nova/compute/utils.py b/nova/compute/utils.py
index 1ce115b20..561c3308a 100644
--- a/nova/compute/utils.py
+++ b/nova/compute/utils.py
@@ -151,7 +151,7 @@ def get_device_name_for_instance(context, instance, bdms, device):
# NOTE(vish): remove this when xenapi is properly setting
# default_ephemeral_device and default_swap_device
if driver.compute_driver_matches('xenapi.XenAPIDriver'):
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
if instance_type['ephemeral_gb']:
used_letters.add('b')
diff --git a/nova/conductor/__init__.py b/nova/conductor/__init__.py
index b192ca7a7..a1e2fad91 100644
--- a/nova/conductor/__init__.py
+++ b/nova/conductor/__init__.py
@@ -24,3 +24,12 @@ def API(*args, **kwargs):
else:
api = conductor_api.API
return api(*args, **kwargs)
+
+
+def ComputeTaskAPI(*args, **kwargs):
+ use_local = kwargs.pop('use_local', False)
+ if oslo.config.cfg.CONF.conductor.use_local or use_local:
+ api = conductor_api.LocalComputeTaskAPI
+ else:
+ api = conductor_api.ComputeTaskAPI
+ return api(*args, **kwargs)
diff --git a/nova/conductor/api.py b/nova/conductor/api.py
index 6706440f5..74b8ce700 100644
--- a/nova/conductor/api.py
+++ b/nova/conductor/api.py
@@ -196,9 +196,10 @@ class LocalAPI(object):
return self._manager.block_device_mapping_update_or_create(context,
values)
- def block_device_mapping_get_all_by_instance(self, context, instance):
+ def block_device_mapping_get_all_by_instance(self, context, instance,
+ legacy=True):
return self._manager.block_device_mapping_get_all_by_instance(
- context, instance)
+ context, instance, legacy)
def block_device_mapping_destroy(self, context, bdms):
return self._manager.block_device_mapping_destroy(context, bdms=bdms)
@@ -337,11 +338,35 @@ class LocalAPI(object):
return self._manager.compute_unrescue(context, instance)
-class API(object):
+class LocalComputeTaskAPI(object):
+ def __init__(self):
+ # TODO(danms): This needs to be something more generic for
+ # other/future users of this sort of functionality.
+ self._manager = utils.ExceptionHelper(
+ manager.ComputeTaskManager())
+
+ def migrate_server(self, context, instance, scheduler_hint, live, rebuild,
+ flavor, block_migration, disk_over_commit):
+ return self._manager.migrate_server(context, instance, scheduler_hint,
+ live, rebuild, flavor, block_migration, disk_over_commit)
+
+ def build_instances(self, context, instances, image,
+ filter_properties, admin_password, injected_files,
+ requested_networks, security_groups, block_device_mapping):
+ utils.spawn_n(self._manager.build_instances, context,
+ instances=instances, image=image,
+ filter_properties=filter_properties,
+ admin_password=admin_password, injected_files=injected_files,
+ requested_networks=requested_networks,
+ security_groups=security_groups,
+ block_device_mapping=block_device_mapping)
+
+
+class API(LocalAPI):
"""Conductor API that does updates via RPC to the ConductorManager."""
def __init__(self):
- self.conductor_rpcapi = rpcapi.ConductorAPI()
+ self._manager = rpcapi.ConductorAPI()
self.base_rpcapi = baserpc.BaseAPI(topic=CONF.conductor.topic)
def wait_until_ready(self, context, early_timeout=10, early_attempts=10):
@@ -376,293 +401,29 @@ class API(object):
def instance_update(self, context, instance_uuid, **updates):
"""Perform an instance update in the database."""
- return self.conductor_rpcapi.instance_update(context, instance_uuid,
- updates, 'conductor')
-
- def instance_destroy(self, context, instance):
- return self.conductor_rpcapi.instance_destroy(context, instance)
-
- def instance_get(self, context, instance_id):
- return self.conductor_rpcapi.instance_get(context, instance_id)
-
- def instance_get_by_uuid(self, context, instance_uuid,
- columns_to_join=None):
- return self.conductor_rpcapi.instance_get_by_uuid(context,
- instance_uuid,
- columns_to_join)
-
- def instance_get_all_by_host(self, context, host, columns_to_join=None):
- return self.conductor_rpcapi.instance_get_all_by_host(
- context, host, columns_to_join=columns_to_join)
-
- def instance_get_all_by_host_and_node(self, context, host, node):
- return self.conductor_rpcapi.instance_get_all_by_host(context,
- host, node)
-
- def instance_get_all_by_filters(self, context, filters,
- sort_key='created_at',
- sort_dir='desc',
- columns_to_join=None):
- return self.conductor_rpcapi.instance_get_all_by_filters(
- context, filters, sort_key, sort_dir, columns_to_join)
-
- def instance_get_active_by_window_joined(self, context, begin, end=None,
- project_id=None, host=None):
- return self.conductor_rpcapi.instance_get_active_by_window_joined(
- context, begin, end, project_id, host)
-
- def instance_info_cache_update(self, context, instance, values):
- return self.conductor_rpcapi.instance_info_cache_update(context,
- instance, values)
-
- def instance_info_cache_delete(self, context, instance):
- return self.conductor_rpcapi.instance_info_cache_delete(context,
- instance)
-
- def instance_type_get(self, context, instance_type_id):
- return self.conductor_rpcapi.instance_type_get(context,
- instance_type_id)
-
- def instance_fault_create(self, context, values):
- return self.conductor_rpcapi.instance_fault_create(context, values)
-
- def migration_get(self, context, migration_id):
- return self.conductor_rpcapi.migration_get(context, migration_id)
-
- def migration_get_unconfirmed_by_dest_compute(self, context,
- confirm_window,
- dest_compute):
- crpcapi = self.conductor_rpcapi
- return crpcapi.migration_get_unconfirmed_by_dest_compute(
- context, confirm_window, dest_compute)
-
- def migration_get_in_progress_by_host_and_node(self, context, host, node):
- crpcapi = self.conductor_rpcapi
- return crpcapi.migration_get_in_progress_by_host_and_node(context,
- host, node)
-
- def migration_create(self, context, instance, values):
- return self.conductor_rpcapi.migration_create(context, instance,
- values)
-
- def migration_update(self, context, migration, status):
- return self.conductor_rpcapi.migration_update(context, migration,
- status)
-
- def aggregate_host_add(self, context, aggregate, host):
- return self.conductor_rpcapi.aggregate_host_add(context, aggregate,
- host)
-
- def aggregate_host_delete(self, context, aggregate, host):
- return self.conductor_rpcapi.aggregate_host_delete(context, aggregate,
- host)
-
- def aggregate_get(self, context, aggregate_id):
- return self.conductor_rpcapi.aggregate_get(context, aggregate_id)
-
- def aggregate_get_by_host(self, context, host, key=None):
- return self.conductor_rpcapi.aggregate_get_by_host(context, host, key)
-
- def aggregate_metadata_add(self, context, aggregate, metadata,
- set_delete=False):
- return self.conductor_rpcapi.aggregate_metadata_add(context, aggregate,
- metadata,
- set_delete)
-
- def aggregate_metadata_delete(self, context, aggregate, key):
- return self.conductor_rpcapi.aggregate_metadata_delete(context,
- aggregate,
- key)
-
- def aggregate_metadata_get_by_host(self, context, host,
- key='availability_zone'):
- return self.conductor_rpcapi.aggregate_metadata_get_by_host(context,
- host,
- key)
-
- def bw_usage_get(self, context, uuid, start_period, mac):
- return self.conductor_rpcapi.bw_usage_update(context, uuid, mac,
- start_period)
-
- def bw_usage_update(self, context, uuid, mac, start_period,
- bw_in, bw_out, last_ctr_in, last_ctr_out,
- last_refreshed=None):
- return self.conductor_rpcapi.bw_usage_update(
- context, uuid, mac, start_period,
- bw_in, bw_out, last_ctr_in, last_ctr_out,
- last_refreshed)
-
- def security_group_get_by_instance(self, context, instance):
- return self.conductor_rpcapi.security_group_get_by_instance(context,
- instance)
-
- def security_group_rule_get_by_security_group(self, context, secgroup):
- return self.conductor_rpcapi.security_group_rule_get_by_security_group(
- context, secgroup)
-
- def provider_fw_rule_get_all(self, context):
- return self.conductor_rpcapi.provider_fw_rule_get_all(context)
-
- def agent_build_get_by_triple(self, context, hypervisor, os, architecture):
- return self.conductor_rpcapi.agent_build_get_by_triple(context,
- hypervisor,
- os,
- architecture)
-
- def block_device_mapping_create(self, context, values):
- return self.conductor_rpcapi.block_device_mapping_update_or_create(
- context, values, create=True)
-
- def block_device_mapping_update(self, context, bdm_id, values):
- values = dict(values)
- values['id'] = bdm_id
- return self.conductor_rpcapi.block_device_mapping_update_or_create(
- context, values, create=False)
-
- def block_device_mapping_update_or_create(self, context, values):
- return self.conductor_rpcapi.block_device_mapping_update_or_create(
- context, values)
-
- def block_device_mapping_get_all_by_instance(self, context, instance):
- return self.conductor_rpcapi.block_device_mapping_get_all_by_instance(
- context, instance)
-
- def block_device_mapping_destroy(self, context, bdms):
- return self.conductor_rpcapi.block_device_mapping_destroy(context,
- bdms=bdms)
-
- def block_device_mapping_destroy_by_instance_and_device(self, context,
- instance,
- device_name):
- return self.conductor_rpcapi.block_device_mapping_destroy(
- context, instance=instance, device_name=device_name)
-
- def block_device_mapping_destroy_by_instance_and_volume(self, context,
- instance,
- volume_id):
- return self.conductor_rpcapi.block_device_mapping_destroy(
- context, instance=instance, volume_id=volume_id)
-
- def vol_get_usage_by_time(self, context, start_time):
- return self.conductor_rpcapi.vol_get_usage_by_time(context, start_time)
-
- def vol_usage_update(self, context, vol_id, rd_req, rd_bytes, wr_req,
- wr_bytes, instance, last_refreshed=None,
- update_totals=False):
- return self.conductor_rpcapi.vol_usage_update(context, vol_id,
- rd_req, rd_bytes,
- wr_req, wr_bytes,
- instance, last_refreshed,
- update_totals)
-
- def service_get_all(self, context):
- return self.conductor_rpcapi.service_get_all_by(context)
-
- def service_get_all_by_topic(self, context, topic):
- return self.conductor_rpcapi.service_get_all_by(context, topic=topic)
-
- def service_get_all_by_host(self, context, host):
- return self.conductor_rpcapi.service_get_all_by(context, host=host)
-
- def service_get_by_host_and_topic(self, context, host, topic):
- return self.conductor_rpcapi.service_get_all_by(context, topic, host)
-
- def service_get_by_compute_host(self, context, host):
- result = self.conductor_rpcapi.service_get_all_by(context, 'compute',
- host)
- # FIXME(comstud): A major revision bump to 2.0 should return a
- # single entry, so we should just return 'result' at that point.
- return result[0]
-
- def service_get_by_args(self, context, host, binary):
- return self.conductor_rpcapi.service_get_all_by(context, host=host,
- binary=binary)
-
- def action_event_start(self, context, values):
- return self.conductor_rpcapi.action_event_start(context, values)
-
- def action_event_finish(self, context, values):
- return self.conductor_rpcapi.action_event_finish(context, values)
-
- def service_create(self, context, values):
- return self.conductor_rpcapi.service_create(context, values)
-
- def service_destroy(self, context, service_id):
- return self.conductor_rpcapi.service_destroy(context, service_id)
-
- def compute_node_create(self, context, values):
- return self.conductor_rpcapi.compute_node_create(context, values)
-
- def compute_node_update(self, context, node, values, prune_stats=False):
- return self.conductor_rpcapi.compute_node_update(context, node,
- values, prune_stats)
-
- def compute_node_delete(self, context, node):
- return self.conductor_rpcapi.compute_node_delete(context, node)
-
- def service_update(self, context, service, values):
- return self.conductor_rpcapi.service_update(context, service, values)
-
- def task_log_get(self, context, task_name, begin, end, host, state=None):
- return self.conductor_rpcapi.task_log_get(context, task_name, begin,
- end, host, state)
-
- def task_log_begin_task(self, context, task_name, begin, end, host,
- task_items=None, message=None):
- return self.conductor_rpcapi.task_log_begin_task(context, task_name,
- begin, end, host,
- task_items, message)
-
- def task_log_end_task(self, context, task_name, begin, end, host,
- errors, message=None):
- return self.conductor_rpcapi.task_log_end_task(context, task_name,
- begin, end, host,
- errors, message)
-
- def notify_usage_exists(self, context, instance, current_period=False,
- ignore_missing_network_data=True,
- system_metadata=None, extra_usage_info=None):
- return self.conductor_rpcapi.notify_usage_exists(
- context, instance, current_period, ignore_missing_network_data,
- system_metadata, extra_usage_info)
-
- def security_groups_trigger_handler(self, context, event, *args):
- return self.conductor_rpcapi.security_groups_trigger_handler(context,
- event,
- args)
-
- def security_groups_trigger_members_refresh(self, context, group_ids):
- return self.conductor_rpcapi.security_groups_trigger_members_refresh(
- context, group_ids)
-
- def network_migrate_instance_start(self, context, instance, migration):
- return self.conductor_rpcapi.network_migrate_instance_start(context,
- instance,
- migration)
-
- def network_migrate_instance_finish(self, context, instance, migration):
- return self.conductor_rpcapi.network_migrate_instance_finish(context,
- instance,
- migration)
-
- def quota_commit(self, context, reservations, project_id=None):
- return self.conductor_rpcapi.quota_commit(context, reservations,
- project_id=project_id)
-
- def quota_rollback(self, context, reservations, project_id=None):
- return self.conductor_rpcapi.quota_rollback(context, reservations,
- project_id=project_id)
-
- def get_ec2_ids(self, context, instance):
- return self.conductor_rpcapi.get_ec2_ids(context, instance)
+ return self._manager.instance_update(context, instance_uuid,
+ updates, 'conductor')
- def compute_stop(self, context, instance, do_cast=True):
- return self.conductor_rpcapi.compute_stop(context, instance, do_cast)
- def compute_confirm_resize(self, context, instance, migration_ref):
- return self.conductor_rpcapi.compute_confirm_resize(context,
- instance,
- migration_ref)
+class ComputeTaskAPI(object):
+ """ComputeTask API that queues up compute tasks for nova-conductor."""
- def compute_unrescue(self, context, instance):
- return self.conductor_rpcapi.compute_unrescue(context, instance)
+ def __init__(self):
+ self.conductor_compute_rpcapi = rpcapi.ComputeTaskAPI()
+
+ def migrate_server(self, context, instance, scheduler_hint, live, rebuild,
+ flavor, block_migration, disk_over_commit):
+ return self.conductor_compute_rpcapi.migrate_server(context, instance,
+ scheduler_hint, live, rebuild, flavor, block_migration,
+ disk_over_commit)
+
+ def build_instances(self, context, instances, image, filter_properties,
+ admin_password, injected_files, requested_networks,
+ security_groups, block_device_mapping):
+ self.conductor_compute_rpcapi.build_instances(context,
+ instances=instances, image=image,
+ filter_properties=filter_properties,
+ admin_password=admin_password, injected_files=injected_files,
+ requested_networks=requested_networks,
+ security_groups=security_groups,
+ block_device_mapping=block_device_mapping)
diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py
index a45c83b8d..d6e718ffb 100644
--- a/nova/conductor/manager.py
+++ b/nova/conductor/manager.py
@@ -14,7 +14,10 @@
"""Handles database requests from other nova services."""
+import copy
+
from nova.api.ec2 import ec2utils
+from nova import block_device
from nova.compute import api as compute_api
from nova.compute import utils as compute_utils
from nova import exception
@@ -22,11 +25,16 @@ from nova import manager
from nova import network
from nova.network.security_group import openstack_driver
from nova import notifications
+from nova.objects import base as nova_object
+from nova.openstack.common.db.sqlalchemy import session as db_session
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
+from nova.openstack.common.notifier import api as notifier
from nova.openstack.common.rpc import common as rpc_common
from nova.openstack.common import timeutils
from nova import quota
+from nova.scheduler import rpcapi as scheduler_rpcapi
+from nova.scheduler import utils as scheduler_utils
LOG = logging.getLogger(__name__)
@@ -47,9 +55,19 @@ datetime_fields = ['launched_at', 'terminated_at', 'updated_at']
class ConductorManager(manager.Manager):
- """Mission: TBD."""
+ """Mission: Conduct things.
+
+ The methods in the base API for nova-conductor are various proxy operations
+ performed on behalf of the nova-compute service running on compute nodes.
+ Compute nodes are not allowed to directly access the database, so this set
+ of methods allows them to get specific work done without locally accessing
+ the database.
+
+ The nova-conductor service also exposes an API in the 'compute_task'
+ namespace. See the ComputeTaskManager class for details.
+ """
- RPC_API_VERSION = '1.49'
+ RPC_API_VERSION = '1.51'
def __init__(self, *args, **kwargs):
super(ConductorManager, self).__init__(service_name='conductor',
@@ -58,8 +76,14 @@ class ConductorManager(manager.Manager):
openstack_driver.get_openstack_security_group_driver())
self._network_api = None
self._compute_api = None
+ self.compute_task_mgr = ComputeTaskManager()
self.quotas = quota.QUOTAS
+ def create_rpc_dispatcher(self, *args, **kwargs):
+ kwargs['additional_apis'] = [self.compute_task_mgr]
+ return super(ConductorManager, self).create_rpc_dispatcher(*args,
+ **kwargs)
+
@property
def network_api(self):
# NOTE(danms): We need to instantiate our network_api on first use
@@ -215,7 +239,7 @@ class ConductorManager(manager.Manager):
def security_group_get_by_instance(self, context, instance):
group = self.db.security_group_get_by_instance(context,
- instance['id'])
+ instance['uuid'])
return jsonutils.to_primitive(group)
def security_group_rule_get_by_security_group(self, context, secgroup):
@@ -241,9 +265,12 @@ class ConductorManager(manager.Manager):
else:
self.db.block_device_mapping_update(context, values['id'], values)
- def block_device_mapping_get_all_by_instance(self, context, instance):
+ def block_device_mapping_get_all_by_instance(self, context, instance,
+ legacy=True):
bdms = self.db.block_device_mapping_get_all_by_instance(
context, instance['uuid'])
+ if legacy:
+ bdms = block_device.legacy_mapping(bdms)
return jsonutils.to_primitive(bdms)
def block_device_mapping_destroy(self, context, bdms=None,
@@ -306,6 +333,7 @@ class ConductorManager(manager.Manager):
result = self.db.instance_fault_create(context, values)
return jsonutils.to_primitive(result)
+ # NOTE(kerrin): This method can be removed in v2.0 of the RPC API.
def vol_get_usage_by_time(self, context, start_time):
result = self.db.vol_get_usage_by_time(context, start_time)
return jsonutils.to_primitive(result)
@@ -313,11 +341,23 @@ class ConductorManager(manager.Manager):
def vol_usage_update(self, context, vol_id, rd_req, rd_bytes, wr_req,
wr_bytes, instance, last_refreshed=None,
update_totals=False):
- self.db.vol_usage_update(context, vol_id, rd_req, rd_bytes, wr_req,
- wr_bytes, instance['uuid'],
- instance['project_id'], instance['user_id'],
- instance['availability_zone'],
- last_refreshed, update_totals)
+ # The session object is needed here, as the vol_usage object returned
+ # needs to bound to it in order to refresh its data
+ session = db_session.get_session()
+ vol_usage = self.db.vol_usage_update(context, vol_id,
+ rd_req, rd_bytes,
+ wr_req, wr_bytes,
+ instance['uuid'],
+ instance['project_id'],
+ instance['user_id'],
+ instance['availability_zone'],
+ last_refreshed, update_totals,
+ session)
+
+ # We have just updated the database, so send the notification now
+ notifier.notify(context, 'conductor.%s' % self.host, 'volume.usage',
+ notifier.INFO,
+ compute_utils.usage_volume_info(vol_usage))
@rpc_common.client_exceptions(exception.ComputeHostNotFound,
exception.HostBinaryNotFound)
@@ -442,3 +482,73 @@ class ConductorManager(manager.Manager):
def compute_unrescue(self, context, instance):
self.compute_api.unrescue(context, instance)
+
+ def object_class_action(self, context, objname, objmethod,
+ objver, args, kwargs):
+ """Perform a classmethod action on an object."""
+ objclass = nova_object.NovaObject.obj_class_from_name(objname,
+ objver)
+ return getattr(objclass, objmethod)(context, *args, **kwargs)
+
+ def object_action(self, context, objinst, objmethod, args, kwargs):
+ """Perform an action on an object."""
+ oldobj = copy.copy(objinst)
+ result = getattr(objinst, objmethod)(context, *args, **kwargs)
+ updates = dict()
+ # NOTE(danms): Diff the object with the one passed to us and
+ # generate a list of changes to forward back
+ for field in objinst.fields:
+ if not hasattr(objinst, nova_object.get_attrname(field)):
+ # Avoid demand-loading anything
+ continue
+ if oldobj[field] != objinst[field]:
+ updates[field] = objinst._attr_to_primitive(field)
+ # This is safe since a field named this would conflict with the
+ # method anyway
+ updates['obj_what_changed'] = objinst.obj_what_changed()
+ return updates, result
+
+
+class ComputeTaskManager(object):
+ """Namespace for compute methods.
+
+ This class presents an rpc API for nova-conductor under the 'compute_task'
+ namespace. The methods here are compute operations that are invoked
+ by the API service. These methods see the operation to completion, which
+ may involve coordinating activities on multiple compute nodes.
+ """
+
+ RPC_API_NAMESPACE = 'compute_task'
+ RPC_API_VERSION = '1.2'
+
+ def __init__(self):
+ self.scheduler_rpcapi = scheduler_rpcapi.SchedulerAPI()
+
+ @rpc_common.client_exceptions(exception.NoValidHost,
+ exception.ComputeServiceUnavailable,
+ exception.InvalidHypervisorType,
+ exception.UnableToMigrateToSelf,
+ exception.DestinationHypervisorTooOld,
+ exception.InvalidLocalStorage,
+ exception.InvalidSharedStorage,
+ exception.MigrationPreCheckError)
+ def migrate_server(self, context, instance, scheduler_hint, live, rebuild,
+ flavor, block_migration, disk_over_commit):
+ if not live or rebuild or (flavor != None):
+ raise NotImplementedError()
+
+ destination = scheduler_hint.get("host")
+ self.scheduler_rpcapi.live_migration(context, block_migration,
+ disk_over_commit, instance, destination)
+
+ def build_instances(self, context, instances, image, filter_properties,
+ admin_password, injected_files, requested_networks,
+ security_groups, block_device_mapping):
+ request_spec = scheduler_utils.build_request_spec(image, instances)
+ # NOTE(alaski): For compatibility until a new scheduler method is used.
+ request_spec.update({'block_device_mapping': block_device_mapping,
+ 'security_group': security_groups})
+ self.scheduler_rpcapi.run_instance(context, request_spec=request_spec,
+ admin_password=admin_password, injected_files=injected_files,
+ requested_networks=requested_networks, is_first_time=True,
+ filter_properties=filter_properties)
diff --git a/nova/conductor/rpcapi.py b/nova/conductor/rpcapi.py
index c9be5dd79..c9b1c0af7 100644
--- a/nova/conductor/rpcapi.py
+++ b/nova/conductor/rpcapi.py
@@ -16,6 +16,7 @@
from oslo.config import cfg
+from nova.objects import base as objects_base
from nova.openstack.common import jsonutils
import nova.openstack.common.rpc.proxy
@@ -88,6 +89,9 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
instance_get_all_by_filters
1.48 - Added compute_unrescue
1.49 - Added columns_to_join to instance_get_by_uuid
+ 1.50 - Added object_action() and object_class_action()
+ 1.51 - Added the 'legacy' argument to
+ block_device_mapping_get_all_by_instance
"""
BASE_RPC_API_VERSION = '1.0'
@@ -95,7 +99,8 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
def __init__(self):
super(ConductorAPI, self).__init__(
topic=CONF.conductor.topic,
- default_version=self.BASE_RPC_API_VERSION)
+ default_version=self.BASE_RPC_API_VERSION,
+ serializer=objects_base.NovaObjectSerializer())
def instance_update(self, context, instance_uuid, updates,
service=None):
@@ -227,11 +232,12 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
values=values, create=create)
return self.call(context, msg, version='1.12')
- def block_device_mapping_get_all_by_instance(self, context, instance):
+ def block_device_mapping_get_all_by_instance(self, context, instance,
+ legacy=True):
instance_p = jsonutils.to_primitive(instance)
msg = self.make_msg('block_device_mapping_get_all_by_instance',
- instance=instance_p)
- return self.call(context, msg, version='1.13')
+ instance=instance_p, legacy=legacy)
+ return self.call(context, msg, version='1.51')
def block_device_mapping_destroy(self, context, bdms=None,
instance=None, volume_id=None,
@@ -440,3 +446,57 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
instance_p = jsonutils.to_primitive(instance)
msg = self.make_msg('compute_unrescue', instance=instance_p)
return self.call(context, msg, version='1.48')
+
+ def object_class_action(self, context, objname, objmethod, objver,
+ args, kwargs):
+ msg = self.make_msg('object_class_action', objname=objname,
+ objmethod=objmethod, objver=objver,
+ args=args, kwargs=kwargs)
+ return self.call(context, msg, version='1.50')
+
+ def object_action(self, context, objinst, objmethod, args, kwargs):
+ msg = self.make_msg('object_action', objinst=objinst,
+ objmethod=objmethod, args=args, kwargs=kwargs)
+ return self.call(context, msg, version='1.50')
+
+
+class ComputeTaskAPI(nova.openstack.common.rpc.proxy.RpcProxy):
+ """Client side of the conductor 'compute' namespaced RPC API
+
+ API version history:
+
+ 1.0 - Initial version (empty).
+ 1.1 - Added unified migrate_server call.
+ 1.2 - Added build_instances
+ """
+
+ BASE_RPC_API_VERSION = '1.0'
+ RPC_API_NAMESPACE = 'compute_task'
+
+ def __init__(self):
+ super(ComputeTaskAPI, self).__init__(
+ topic=CONF.conductor.topic,
+ default_version=self.BASE_RPC_API_VERSION)
+
+ def migrate_server(self, context, instance, scheduler_hint, live, rebuild,
+ flavor, block_migration, disk_over_commit):
+ instance_p = jsonutils.to_primitive(instance)
+ flavor_p = jsonutils.to_primitive(flavor)
+ msg = self.make_msg('migrate_server', instance=instance_p,
+ scheduler_hint=scheduler_hint, live=live, rebuild=rebuild,
+ flavor=flavor_p, block_migration=block_migration,
+ disk_over_commit=disk_over_commit)
+ return self.call(context, msg, version='1.1')
+
+ def build_instances(self, context, instances, image, filter_properties,
+ admin_password, injected_files, requested_networks,
+ security_groups, block_device_mapping):
+ instances_p = [jsonutils.to_primitive(inst) for inst in instances]
+ image_p = jsonutils.to_primitive(image)
+ msg = self.make_msg('build_instances', instances=instances_p,
+ image=image_p, filter_properties=filter_properties,
+ admin_password=admin_password, injected_files=injected_files,
+ requested_networks=requested_networks,
+ security_groups=security_groups,
+ block_device_mapping=block_device_mapping)
+ self.cast(context, msg, version='1.2')
diff --git a/nova/console/xvp.py b/nova/console/xvp.py
index be3a41c1d..b28101499 100644
--- a/nova/console/xvp.py
+++ b/nova/console/xvp.py
@@ -143,7 +143,7 @@ class XVPConsoleProxy(object):
'-p', CONF.console_xvp_pid,
'-c', CONF.console_xvp_conf,
'-l', CONF.console_xvp_log)
- except processutils.ProcessExecutionError, err:
+ except processutils.ProcessExecutionError as err:
LOG.error(_('Error starting xvp: %s') % err)
def _xvp_restart(self):
diff --git a/nova/consoleauth/manager.py b/nova/consoleauth/manager.py
index a235eafb6..6e822cf18 100644
--- a/nova/consoleauth/manager.py
+++ b/nova/consoleauth/manager.py
@@ -24,7 +24,7 @@ from oslo.config import cfg
from nova.cells import rpcapi as cells_rpcapi
from nova.compute import rpcapi as compute_rpcapi
-from nova.conductor import api as conductor_api
+from nova import conductor
from nova import manager
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
@@ -56,7 +56,7 @@ class ConsoleAuthManager(manager.Manager):
super(ConsoleAuthManager, self).__init__(service_name='consoleauth',
*args, **kwargs)
self.mc = memorycache.get_client()
- self.conductor_api = conductor_api.API()
+ self.conductor_api = conductor.API()
self.compute_rpcapi = compute_rpcapi.ComputeAPI()
self.cells_rpcapi = cells_rpcapi.CellsAPI()
diff --git a/nova/crypto.py b/nova/crypto.py
index aaf102d8a..b312aca2d 100644
--- a/nova/crypto.py
+++ b/nova/crypto.py
@@ -230,10 +230,10 @@ def convert_from_sshrsa_to_pkcs8(pubkey):
# +- INTEGER 65537
# Build the sequence for the bit string
- n_val = eval(
- '0x' + ''.join(['%02X' % struct.unpack('B', x)[0] for x in parts[2]]))
- e_val = eval(
- '0x' + ''.join(['%02X' % struct.unpack('B', x)[0] for x in parts[1]]))
+ n_val = int(
+ ''.join(['%02X' % struct.unpack('B', x)[0] for x in parts[2]]), 16)
+ e_val = int(
+ ''.join(['%02X' % struct.unpack('B', x)[0] for x in parts[1]]), 16)
pkinfo = _to_sequence(univ.Integer(n_val), univ.Integer(e_val))
# Convert the sequence into a bit string
@@ -324,7 +324,7 @@ def generate_x509_cert(user_id, project_id, bits=1024):
with utils.tempdir() as tmpdir:
keyfile = os.path.abspath(os.path.join(tmpdir, 'temp.key'))
- csrfile = os.path.join(tmpdir, 'temp.csr')
+ csrfile = os.path.abspath(os.path.join(tmpdir, 'temp.csr'))
utils.execute('openssl', 'genrsa', '-out', keyfile, str(bits))
utils.execute('openssl', 'req', '-new', '-key', keyfile, '-out',
csrfile, '-batch', '-subj', subject)
diff --git a/nova/db/api.py b/nova/db/api.py
index 322247311..a0451dcc7 100644
--- a/nova/db/api.py
+++ b/nova/db/api.py
@@ -112,9 +112,9 @@ def not_equal(*values):
###################
-def service_destroy(context, instance_id):
+def service_destroy(context, service_id):
"""Destroy the service or raise if it does not exist."""
- return IMPL.service_destroy(context, instance_id)
+ return IMPL.service_destroy(context, service_id)
def service_get(context, service_id):
@@ -708,6 +708,96 @@ def instance_remove_security_group(context, instance_id, security_group_id):
security_group_id)
+####################
+
+
+def instance_group_create(context, values, policies=None, metadata=None,
+ members=None):
+ """Create a new group with metadata.
+
+ Each group will receive a unique uuid. This will be used for access to the
+ group.
+ """
+ return IMPL.instance_group_create(context, values, policies, metadata,
+ members)
+
+
+def instance_group_get(context, group_uuid):
+ """Get a specific group by id."""
+ return IMPL.instance_group_get(context, group_uuid)
+
+
+def instance_group_update(context, group_uuid, values):
+ """Update the attributes of an group."""
+ return IMPL.instance_group_update(context, group_uuid, values)
+
+
+def instance_group_delete(context, group_uuid):
+ """Delete an group."""
+ return IMPL.instance_group_delete(context, group_uuid)
+
+
+def instance_group_get_all(context):
+ """Get all groups."""
+ return IMPL.instance_group_get_all(context)
+
+
+def instance_group_get_all_by_project_id(context, project_id):
+ """Get all groups for a specific project_id."""
+ return IMPL.instance_group_get_all_by_project_id(context, project_id)
+
+
+def instance_group_metadata_add(context, group_uuid, metadata,
+ set_delete=False):
+ """Add metadata to the group."""
+ return IMPL.instance_group_metadata_add(context, group_uuid, metadata,
+ set_delete)
+
+
+def instance_group_metadata_delete(context, group_uuid, key):
+ """Delete metadata from the group."""
+ return IMPL.instance_group_metadata_delete(context, group_uuid, key)
+
+
+def instance_group_metadata_get(context, group_uuid):
+ """Get the metadata from the group."""
+ return IMPL.instance_group_metadata_get(context, group_uuid)
+
+
+def instance_group_members_add(context, group_uuid, members,
+ set_delete=False):
+ """Add members to the group."""
+ return IMPL.instance_group_members_add(context, group_uuid, members,
+ set_delete=set_delete)
+
+
+def instance_group_member_delete(context, group_uuid, instance_id):
+ """Delete a specific member from the group."""
+ return IMPL.instance_group_member_delete(context, group_uuid, instance_id)
+
+
+def instance_group_members_get(context, group_uuid):
+ """Get the members from the group."""
+ return IMPL.instance_group_members_get(context, group_uuid)
+
+
+def instance_group_policies_add(context, group_uuid, policies,
+ set_delete=False):
+ """Add policies to the group."""
+ return IMPL.instance_group_policies_add(context, group_uuid, policies,
+ set_delete=set_delete)
+
+
+def instance_group_policy_delete(context, group_uuid, policy):
+ """Delete a specific policy from the group."""
+ return IMPL.instance_group_policy_delete(context, group_uuid, policy)
+
+
+def instance_group_policies_get(context, group_uuid):
+ """Get the policies from the group."""
+ return IMPL.instance_group_policies_get(context, group_uuid)
+
+
###################
@@ -719,22 +809,13 @@ def instance_info_cache_get(context, instance_uuid):
return IMPL.instance_info_cache_get(context, instance_uuid)
-def instance_info_cache_update(context, instance_uuid, values,
- update_cells=True):
+def instance_info_cache_update(context, instance_uuid, values):
"""Update an instance info cache record in the table.
:param instance_uuid: = uuid of info cache's instance
:param values: = dict containing column values to update
"""
- rv = IMPL.instance_info_cache_update(context, instance_uuid, values)
- if update_cells:
- try:
- cells_rpcapi.CellsAPI().instance_info_cache_update_at_top(
- context, rv)
- except Exception:
- LOG.exception(_("Failed to notify cells of instance info "
- "cache update"))
- return rv
+ return IMPL.instance_info_cache_update(context, instance_uuid, values)
def instance_info_cache_delete(context, instance_uuid):
@@ -1022,20 +1103,20 @@ def ec2_snapshot_create(context, snapshot_id, forced_id=None):
####################
-def block_device_mapping_create(context, values):
+def block_device_mapping_create(context, values, legacy=True):
"""Create an entry of block device mapping."""
- return IMPL.block_device_mapping_create(context, values)
+ return IMPL.block_device_mapping_create(context, values, legacy)
-def block_device_mapping_update(context, bdm_id, values):
+def block_device_mapping_update(context, bdm_id, values, legacy=True):
"""Update an entry of block device mapping."""
- return IMPL.block_device_mapping_update(context, bdm_id, values)
+ return IMPL.block_device_mapping_update(context, bdm_id, values, legacy)
-def block_device_mapping_update_or_create(context, values):
+def block_device_mapping_update_or_create(context, values, legacy=True):
"""Update an entry of block device mapping.
If not existed, create a new entry"""
- return IMPL.block_device_mapping_update_or_create(context, values)
+ return IMPL.block_device_mapping_update_or_create(context, values, legacy)
def block_device_mapping_get_all_by_instance(context, instance_uuid):
@@ -1086,9 +1167,9 @@ def security_group_get_by_project(context, project_id):
return IMPL.security_group_get_by_project(context, project_id)
-def security_group_get_by_instance(context, instance_id):
+def security_group_get_by_instance(context, instance_uuid):
"""Get security groups to which the instance is assigned."""
- return IMPL.security_group_get_by_instance(context, instance_id)
+ return IMPL.security_group_get_by_instance(context, instance_uuid)
def security_group_exists(context, project_id, group_name):
@@ -1106,6 +1187,11 @@ def security_group_create(context, values):
return IMPL.security_group_create(context, values)
+def security_group_update(context, security_group_id, values):
+ """Update a security group."""
+ return IMPL.security_group_update(context, security_group_id, values)
+
+
def security_group_ensure_default(context):
"""Ensure default security group exists for a project_id.
@@ -1473,14 +1559,16 @@ def vol_get_usage_by_time(context, begin):
def vol_usage_update(context, id, rd_req, rd_bytes, wr_req, wr_bytes,
instance_id, project_id, user_id, availability_zone,
- last_refreshed=None, update_totals=False):
+ last_refreshed=None, update_totals=False,
+ session=None):
"""Update cached volume usage for a volume
Creates new record if needed."""
return IMPL.vol_usage_update(context, id, rd_req, rd_bytes, wr_req,
wr_bytes, instance_id, project_id, user_id,
availability_zone,
last_refreshed=last_refreshed,
- update_totals=update_totals)
+ update_totals=update_totals,
+ session=session)
###################
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index e170cac55..e0807b64a 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -519,9 +519,10 @@ def _update_stats(context, new_stats, compute_id, session, prune_stats=False):
for k, v in new_stats.iteritems():
old_stat = statmap.pop(k, None)
if old_stat:
- # update existing value:
- old_stat.update({'value': v})
- stats.append(old_stat)
+ if old_stat['value'] != unicode(v):
+ # update existing value:
+ old_stat.update({'value': v})
+ stats.append(old_stat)
else:
# add new stat:
stat = models.ComputeNodeStat()
@@ -648,14 +649,18 @@ def certificate_get_all_by_user_and_project(context, user_id, project_id):
@require_context
def floating_ip_get(context, id):
- result = model_query(context, models.FloatingIp, project_only=True).\
- filter_by(id=id).\
- options(joinedload_all('fixed_ip.instance')).\
- first()
-
- if not result:
- raise exception.FloatingIpNotFound(id=id)
+ try:
+ result = model_query(context, models.FloatingIp, project_only=True).\
+ filter_by(id=id).\
+ options(joinedload_all('fixed_ip.instance')).\
+ first()
+ if not result:
+ raise exception.FloatingIpNotFound(id=id)
+ except DataError:
+ msg = _("Invalid floating ip id %s in request") % id
+ LOG.warn(msg)
+ raise exception.InvalidID(id=id)
return result
@@ -865,14 +870,18 @@ def _floating_ip_get_by_address(context, address, session=None):
# if address string is empty explicitly set it to None
if not address:
address = None
+ try:
+ result = model_query(context, models.FloatingIp, session=session).\
+ filter_by(address=address).\
+ options(joinedload_all('fixed_ip.instance')).\
+ first()
- result = model_query(context, models.FloatingIp, session=session).\
- filter_by(address=address).\
- options(joinedload_all('fixed_ip.instance')).\
- first()
-
- if not result:
- raise exception.FloatingIpNotFoundForAddress(address=address)
+ if not result:
+ raise exception.FloatingIpNotFoundForAddress(address=address)
+ except DataError:
+ msg = _("Invalid floating IP %s in request") % address
+ LOG.warn(msg)
+ raise exception.InvalidIpAddressError(msg)
# If the floating IP has a project ID set, check to make sure
# the non-admin user has access.
@@ -1070,11 +1079,8 @@ def fixed_ip_bulk_create(context, ips):
def fixed_ip_disassociate(context, address):
session = get_session()
with session.begin():
- fixed_ip_ref = fixed_ip_get_by_address(context,
- address,
- session=session)
- fixed_ip_ref['instance_uuid'] = None
- fixed_ip_ref.save(session=session)
+ _fixed_ip_get_by_address(context, address, session=session).\
+ update({'instance_uuid': None})
@require_admin_context
@@ -1132,10 +1138,8 @@ def fixed_ip_get(context, id, get_network=False):
@require_admin_context
-def fixed_ip_get_all(context, session=None):
- result = model_query(context, models.FixedIp, session=session,
- read_deleted="yes").\
- all()
+def fixed_ip_get_all(context):
+ result = model_query(context, models.FixedIp, read_deleted="yes").all()
if not result:
raise exception.NoFixedIpsDefined()
@@ -1143,46 +1147,66 @@ def fixed_ip_get_all(context, session=None):
@require_context
-def fixed_ip_get_by_address(context, address, session=None):
- result = model_query(context, models.FixedIp, session=session).\
- filter_by(address=address).\
- first()
- if not result:
- raise exception.FixedIpNotFoundForAddress(address=address)
+def fixed_ip_get_by_address(context, address):
+ return _fixed_ip_get_by_address(context, address)
- # NOTE(sirp): shouldn't we just use project_only here to restrict the
- # results?
- if (nova.context.is_user_context(context) and
- result['instance_uuid'] is not None):
- instance = _instance_get_by_uuid(context.elevated(read_deleted='yes'),
- result['instance_uuid'],
- session)
- nova.context.authorize_project_context(context, instance.project_id)
+
+@require_context
+def _fixed_ip_get_by_address(context, address, session=None):
+ if session is None:
+ session = get_session()
+
+ with session.begin(subtransactions=True):
+ try:
+ result = model_query(context, models.FixedIp, session=session).\
+ filter_by(address=address).\
+ first()
+ if not result:
+ raise exception.FixedIpNotFoundForAddress(address=address)
+ except DataError:
+ msg = _("Invalid fixed IP Address %s in request") % address
+ LOG.warn(msg)
+ raise exception.FixedIpInvalid(msg)
+
+ # NOTE(sirp): shouldn't we just use project_only here to restrict the
+ # results?
+ if (nova.context.is_user_context(context) and
+ result['instance_uuid'] is not None):
+ instance = _instance_get_by_uuid(
+ context.elevated(read_deleted='yes'),
+ result['instance_uuid'],
+ session
+ )
+ nova.context.authorize_project_context(context,
+ instance.project_id)
return result
@require_admin_context
-def fixed_ip_get_by_address_detailed(context, address, session=None):
+def fixed_ip_get_by_address_detailed(context, address):
"""
:returns: a tuple of (models.FixedIp, models.Network, models.Instance)
"""
- if not session:
- session = get_session()
+ try:
+ result = model_query(context, models.FixedIp,
+ models.Network, models.Instance).\
+ filter_by(address=address).\
+ outerjoin((models.Network,
+ models.Network.id ==
+ models.FixedIp.network_id)).\
+ outerjoin((models.Instance,
+ models.Instance.uuid ==
+ models.FixedIp.instance_uuid)).\
+ first()
- result = model_query(context, models.FixedIp, models.Network,
- models.Instance, session=session).\
- filter_by(address=address).\
- outerjoin((models.Network,
- models.Network.id ==
- models.FixedIp.network_id)).\
- outerjoin((models.Instance,
- models.Instance.uuid ==
- models.FixedIp.instance_uuid)).\
- first()
+ if not result:
+ raise exception.FixedIpNotFoundForAddress(address=address)
- if not result:
- raise exception.FixedIpNotFoundForAddress(address=address)
+ except DataError:
+ msg = _("Invalid fixed IP Address %s in request") % address
+ LOG.warn(msg)
+ raise exception.FixedIpInvalid(msg)
return result
@@ -1253,11 +1277,8 @@ def fixed_ips_by_virtual_interface(context, vif_id):
def fixed_ip_update(context, address, values):
session = get_session()
with session.begin():
- fixed_ip_ref = fixed_ip_get_by_address(context,
- address,
- session=session)
- fixed_ip_ref.update(values)
- fixed_ip_ref.save(session=session)
+ _fixed_ip_get_by_address(context, address, session=session).\
+ update(values)
@require_context
@@ -1315,9 +1336,14 @@ def virtual_interface_get_by_address(context, address):
:param address: = the address of the interface you're looking to get
"""
- vif_ref = _virtual_interface_query(context).\
- filter_by(address=address).\
- first()
+ try:
+ vif_ref = _virtual_interface_query(context).\
+ filter_by(address=address).\
+ first()
+ except DataError:
+ msg = _("Invalid virtual interface address %s in request") % address
+ LOG.warn(msg)
+ raise exception.InvalidIpAddressError(msg)
return vif_ref
@@ -1509,9 +1535,6 @@ def instance_destroy(context, instance_uuid, constraint=None):
session.query(models.InstanceMetadata).\
filter_by(instance_uuid=instance_uuid).\
soft_delete()
- session.query(models.InstanceSystemMetadata).\
- filter_by(instance_uuid=instance_uuid).\
- soft_delete()
return instance_ref
@@ -1701,16 +1724,16 @@ def instance_get_all_by_filters(context, filters, sort_key, sort_dir,
# Instances can be soft or hard deleted and the query needs to
# include or exclude both
if filters.pop('deleted'):
- if filters.pop('soft_deleted', False):
- query_prefix = query_prefix.\
- filter(models.Instance.deleted == models.Instance.id)
- else:
+ if filters.pop('soft_deleted', True):
deleted = or_(
models.Instance.deleted == models.Instance.id,
models.Instance.vm_state == vm_states.SOFT_DELETED
)
query_prefix = query_prefix.\
filter(deleted)
+ else:
+ query_prefix = query_prefix.\
+ filter(models.Instance.deleted == models.Instance.id)
else:
query_prefix = query_prefix.\
filter_by(deleted=0)
@@ -2853,18 +2876,18 @@ def quota_reserve(context, resources, quotas, deltas, expire,
# a best-effort mechanism.
# Check for deltas that would go negative
- unders = [resource for resource, delta in deltas.items()
+ unders = [res for res, delta in deltas.items()
if delta < 0 and
- delta + usages[resource].in_use < 0]
+ delta + usages[res].in_use < 0]
# Now, let's check the quotas
# NOTE(Vek): We're only concerned about positive increments.
# If a project has gone over quota, we want them to
# be able to reduce their usage without any
# problems.
- overs = [resource for resource, delta in deltas.items()
- if quotas[resource] >= 0 and delta >= 0 and
- quotas[resource] < delta + usages[resource].total]
+ overs = [res for res, delta in deltas.items()
+ if quotas[res] >= 0 and delta >= 0 and
+ quotas[res] < delta + usages[res].total]
# NOTE(Vek): The quota check needs to be in the transaction,
# but the transaction doesn't fail just because
@@ -2876,12 +2899,12 @@ def quota_reserve(context, resources, quotas, deltas, expire,
# Create the reservations
if not overs:
reservations = []
- for resource, delta in deltas.items():
+ for res, delta in deltas.items():
reservation = reservation_create(elevated,
str(uuid.uuid4()),
- usages[resource],
+ usages[res],
project_id,
- resource, delta, expire,
+ res, delta, expire,
session=session)
reservations.append(reservation.uuid)
@@ -2898,7 +2921,7 @@ def quota_reserve(context, resources, quotas, deltas, expire,
# To prevent this, we only update the
# reserved value if the delta is positive.
if delta > 0:
- usages[resource].reserved += delta
+ usages[res].reserved += delta
# Apply updates to the usages table
for usage_ref in usages.values():
@@ -3099,24 +3122,35 @@ def _scrub_empty_str_values(dct, keys_to_scrub):
del dct[key]
+def _from_legacy_values(values, legacy, allow_updates=False):
+ if legacy:
+ if allow_updates and block_device.is_safe_for_update(values):
+ return values
+ else:
+ return block_device.BlockDeviceDict.from_legacy(values)
+ else:
+ return values
+
+
@require_context
-def block_device_mapping_create(context, values):
+def block_device_mapping_create(context, values, legacy=True):
_scrub_empty_str_values(values, ['volume_size'])
+ values = _from_legacy_values(values, legacy)
bdm_ref = models.BlockDeviceMapping()
bdm_ref.update(values)
bdm_ref.save()
@require_context
-def block_device_mapping_update(context, bdm_id, values):
+def block_device_mapping_update(context, bdm_id, values, legacy=True):
_scrub_empty_str_values(values, ['volume_size'])
+ values = _from_legacy_values(values, legacy, allow_updates=True)
_block_device_mapping_get_query(context).\
filter_by(id=bdm_id).\
update(values)
-@require_context
-def block_device_mapping_update_or_create(context, values):
+def block_device_mapping_update_or_create(context, values, legacy=True):
_scrub_empty_str_values(values, ['volume_size'])
session = get_session()
with session.begin():
@@ -3125,24 +3159,32 @@ def block_device_mapping_update_or_create(context, values):
filter_by(device_name=values['device_name']).\
first()
if not result:
+ values = _from_legacy_values(values, legacy)
bdm_ref = models.BlockDeviceMapping()
bdm_ref.update(values)
bdm_ref.save(session=session)
else:
+ values = _from_legacy_values(values, legacy, allow_updates=True)
result.update(values)
# NOTE(yamahata): same virtual device name can be specified multiple
# times. So delete the existing ones.
- virtual_name = values['virtual_name']
- if (virtual_name is not None and
- block_device.is_swap_or_ephemeral(virtual_name)):
-
- _block_device_mapping_get_query(context, session=session).\
- filter_by(instance_uuid=values['instance_uuid']).\
- filter_by(virtual_name=virtual_name).\
+ # TODO(ndipanov): Just changed to use new format for now -
+ # should be moved out of db layer or removed completely
+ if values.get('source_type') == 'blank':
+ is_swap = values.get('guest_format') == 'swap'
+ query = (_block_device_mapping_get_query(context, session=session).
+ filter_by(instance_uuid=values['instance_uuid']).
+ filter_by(source_type='blank').
filter(models.BlockDeviceMapping.device_name !=
- values['device_name']).\
- soft_delete()
+ values['device_name']))
+ if is_swap:
+ query.filter_by(guest_format='swap').soft_delete()
+ else:
+ (query.filter(or_(
+ models.BlockDeviceMapping.guest_format == None,
+ models.BlockDeviceMapping.guest_format != 'swap')).
+ soft_delete())
@require_context
@@ -3262,10 +3304,10 @@ def security_group_get_by_project(context, project_id):
@require_context
-def security_group_get_by_instance(context, instance_id):
+def security_group_get_by_instance(context, instance_uuid):
return _security_group_get_query(context, read_deleted="no").\
join(models.SecurityGroup.instances).\
- filter_by(id=instance_id).\
+ filter_by(uuid=instance_uuid).\
all()
@@ -3313,6 +3355,18 @@ def security_group_create(context, values, session=None):
return security_group_ref
+@require_context
+def security_group_update(context, security_group_id, values, session=None):
+ security_group_ref = model_query(context, models.SecurityGroup,
+ session=session).filter_by(id=security_group_id).first()
+
+ if not security_group_ref:
+ raise exception.SecurityGroupNotFound(
+ security_group_id=security_group_id)
+ security_group_ref.update(values)
+ return security_group_ref
+
+
def security_group_ensure_default(context, session=None):
"""Ensure default security group exists for a project_id."""
try:
@@ -3728,7 +3782,7 @@ def instance_type_create(context, values):
if 'flavorid' in e.columns:
raise exception.InstanceTypeIdExists(flavor_id=values['flavorid'])
raise exception.InstanceTypeExists(name=values['name'])
- except Exception, e:
+ except Exception as e:
raise db_exc.DBError(e)
return _dict_with_extra_specs(instance_type_ref)
@@ -4264,28 +4318,19 @@ def agent_build_get_all(context, hypervisor=None):
@require_admin_context
def agent_build_destroy(context, agent_build_id):
- session = get_session()
- with session.begin():
- count = model_query(context, models.AgentBuild,
- session=session, read_deleted="yes").\
- filter_by(id=agent_build_id).\
- soft_delete()
- if count == 0:
- raise exception.AgentBuildNotFound(id=agent_build_id)
+ rows_affected = model_query(context, models.AgentBuild).filter_by(
+ id=agent_build_id).soft_delete()
+ if rows_affected == 0:
+ raise exception.AgentBuildNotFound(id=agent_build_id)
@require_admin_context
def agent_build_update(context, agent_build_id, values):
- session = get_session()
- with session.begin():
- agent_build_ref = model_query(context, models.AgentBuild,
- session=session, read_deleted="yes").\
+ rows_affected = model_query(context, models.AgentBuild).\
filter_by(id=agent_build_id).\
- first()
- if not agent_build_ref:
- raise exception.AgentBuildNotFound(id=agent_build_id)
- agent_build_ref.update(values)
- agent_build_ref.save(session=session)
+ update(values)
+ if rows_affected == 0:
+ raise exception.AgentBuildNotFound(id=agent_build_id)
####################
@@ -4443,7 +4488,7 @@ def vol_usage_update(context, id, rd_req, rd_bytes, wr_req, wr_bytes,
current_usage['curr_write_bytes'] + wr_bytes)
current_usage.update(values)
- return
+ return current_usage
vol_usage = models.VolumeUsage()
vol_usage.tot_last_refreshed = timeutils.utcnow()
@@ -4467,6 +4512,8 @@ def vol_usage_update(context, id, rd_req, rd_bytes, wr_req, wr_bytes,
vol_usage.save(session=session)
+ return vol_usage
+
####################
@@ -4501,7 +4548,7 @@ def s3_image_create(context, image_uuid):
s3_image_ref = models.S3Image()
s3_image_ref.update({'uuid': image_uuid})
s3_image_ref.save()
- except Exception, e:
+ except Exception as e:
raise db_exc.DBError(e)
return s3_image_ref
@@ -5140,3 +5187,357 @@ def archive_deleted_rows(context, max_rows=None):
if rows_archived >= max_rows:
break
return rows_archived
+
+
+####################
+
+
+def _instance_group_get_query(context, model_class, id_field=None, id=None,
+ session=None, read_deleted=None):
+ columns_to_join = {models.InstanceGroup: ['_policies', '_metadata',
+ '_members']}
+ query = model_query(context, model_class, session=session,
+ read_deleted=read_deleted)
+
+ for c in columns_to_join.get(model_class, []):
+ query = query.options(joinedload(c))
+
+ if id and id_field:
+ query = query.filter(id_field == id)
+
+ return query
+
+
+def instance_group_create(context, values, policies=None, metadata=None,
+ members=None):
+ """Create a new group with metadata."""
+ uuid = values.get('uuid', None)
+ if uuid is None:
+ uuid = uuidutils.generate_uuid()
+ values['uuid'] = uuid
+ session = get_session()
+ with session.begin():
+ try:
+ group = models.InstanceGroup()
+ group.update(values)
+ group.save(session=session)
+ except db_exc.DBDuplicateEntry:
+ raise exception.InstanceGroupIdExists(group_uuid=uuid)
+
+ # We don't want these to be lazy loaded later. We know there is
+ # nothing here since we just created this instance group.
+ group._policies = []
+ group._metadata = []
+ group._members = []
+ if policies:
+ _instance_group_policies_add(context, group.id, policies,
+ session=session)
+ if metadata:
+ _instance_group_metadata_add(context, group.id, metadata,
+ session=session)
+ if members:
+ _instance_group_members_add(context, group.id, members,
+ session=session)
+ return instance_group_get(context, uuid)
+
+
+def instance_group_get(context, group_uuid):
+ """Get a specific group by uuid."""
+ group = _instance_group_get_query(context,
+ models.InstanceGroup,
+ models.InstanceGroup.uuid,
+ group_uuid).\
+ first()
+ if not group:
+ raise exception.InstanceGroupNotFound(group_uuid=group_uuid)
+ return group
+
+
+def instance_group_update(context, group_uuid, values):
+ """Update the attributes of an group.
+
+ If values contains a metadata key, it updates the aggregate metadata
+ too. Similary for the policies and members.
+ """
+ session = get_session()
+ with session.begin():
+ group = model_query(context,
+ models.InstanceGroup,
+ session=session).\
+ filter_by(uuid=group_uuid).\
+ first()
+ if not group:
+ raise exception.InstanceGroupNotFound(group_uuid=group_uuid)
+
+ policies = values.get('policies')
+ if policies is not None:
+ _instance_group_policies_add(context,
+ group.id,
+ values.pop('policies'),
+ set_delete=True,
+ session=session)
+ metadata = values.get('metadata')
+ if metadata is not None:
+ _instance_group_metadata_add(context,
+ group.id,
+ values.pop('metadata'),
+ set_delete=True,
+ session=session)
+ members = values.get('members')
+ if members is not None:
+ _instance_group_members_add(context,
+ group.id,
+ values.pop('members'),
+ set_delete=True,
+ session=session)
+
+ group.update(values)
+ group.save(session=session)
+ if policies:
+ values['policies'] = policies
+ if metadata:
+ values['metadata'] = metadata
+ if members:
+ values['members'] = members
+
+
+def instance_group_delete(context, group_uuid):
+ """Delete an group."""
+ session = get_session()
+ with session.begin():
+ count = _instance_group_get_query(context,
+ models.InstanceGroup,
+ models.InstanceGroup.uuid,
+ group_uuid,
+ session=session).soft_delete()
+ if count == 0:
+ raise exception.InstanceGroupNotFound(group_uuid=group_uuid)
+
+ # Delete policies, metadata and members
+ instance_models = [models.InstanceGroupPolicy,
+ models.InstanceGroupMetadata,
+ models.InstanceGroupMember]
+ for model in instance_models:
+ model_query(context, model, session=session).\
+ filter_by(group_id=group_uuid).\
+ soft_delete()
+
+
+def instance_group_get_all(context):
+ """Get all groups."""
+ return _instance_group_get_query(context, models.InstanceGroup).all()
+
+
+def instance_group_get_all_by_project_id(context, project_id):
+ """Get all groups."""
+ return _instance_group_get_query(context, models.InstanceGroup).\
+ filter_by(project_id=project_id).\
+ all()
+
+
+def _instance_group_model_get_query(context, model_class, group_uuid,
+ session=None, read_deleted='no'):
+ return model_query(context,
+ model_class,
+ read_deleted=read_deleted,
+ session=session).\
+ filter_by(group_id=group_uuid)
+
+
+def _instance_group_id(context, group_uuid):
+ """Returns the group database ID for the group UUID."""
+
+ result = model_query(context,
+ models.InstanceGroup.id,
+ base_model=models.InstanceGroup).\
+ filter_by(uuid=group_uuid).\
+ first()
+ if not result:
+ raise exception.InstanceGroupNotFound(group_uuid=group_uuid)
+ return result.id
+
+
+def _instance_group_metadata_add(context, id, metadata, set_delete=False,
+ session=None):
+ if not session:
+ session = get_session()
+
+ with session.begin(subtransactions=True):
+ all_keys = metadata.keys()
+ query = _instance_group_model_get_query(context,
+ models.InstanceGroupMetadata,
+ id,
+ session=session)
+ if set_delete:
+ query.filter(~models.InstanceGroupMetadata.key.in_(all_keys)).\
+ soft_delete(synchronize_session=False)
+
+ query = query.filter(models.InstanceGroupMetadata.key.in_(all_keys))
+ already_existing_keys = set()
+ for meta_ref in query.all():
+ key = meta_ref.key
+ meta_ref.update({'value': metadata[key]})
+ already_existing_keys.add(key)
+
+ for key, value in metadata.iteritems():
+ if key in already_existing_keys:
+ continue
+ meta_ref = models.InstanceGroupMetadata()
+ meta_ref.update({'key': key,
+ 'value': value,
+ 'group_id': id})
+ session.add(meta_ref)
+
+ return metadata
+
+
+def instance_group_metadata_add(context, group_uuid, metadata,
+ set_delete=False):
+ id = _instance_group_id(context, group_uuid)
+ return _instance_group_metadata_add(context, id, metadata,
+ set_delete=set_delete)
+
+
+def instance_group_metadata_delete(context, group_uuid, key):
+ id = _instance_group_id(context, group_uuid)
+ count = _instance_group_get_query(context,
+ models.InstanceGroupMetadata,
+ models.InstanceGroupMetadata.group_id,
+ id).\
+ filter_by(key=key).\
+ soft_delete()
+ if count == 0:
+ raise exception.InstanceGroupMetadataNotFound(group_uuid=group_uuid,
+ metadata_key=key)
+
+
+def instance_group_metadata_get(context, group_uuid):
+ id = _instance_group_id(context, group_uuid)
+ rows = model_query(context,
+ models.InstanceGroupMetadata.key,
+ models.InstanceGroupMetadata.value,
+ base_model=models.InstanceGroupMetadata).\
+ filter_by(group_id=id).all()
+ return dict((r[0], r[1]) for r in rows)
+
+
+def _instance_group_members_add(context, id, members, set_delete=False,
+ session=None):
+ if not session:
+ session = get_session()
+
+ all_members = set(members)
+ with session.begin(subtransactions=True):
+ query = _instance_group_model_get_query(context,
+ models.InstanceGroupMember,
+ id,
+ session=session)
+ if set_delete:
+ query.filter(~models.InstanceGroupMember.instance_id.in_(
+ all_members)).\
+ soft_delete(synchronize_session=False)
+
+ query = query.filter(
+ models.InstanceGroupMember.instance_id.in_(all_members))
+ already_existing = set()
+ for member_ref in query.all():
+ already_existing.add(member_ref.instance_id)
+
+ for instance_id in members:
+ if instance_id in already_existing:
+ continue
+ member_ref = models.InstanceGroupMember()
+ member_ref.update({'instance_id': instance_id,
+ 'group_id': id})
+ session.add(member_ref)
+
+ return members
+
+
+def instance_group_members_add(context, group_uuid, members,
+ set_delete=False):
+ id = _instance_group_id(context, group_uuid)
+ return _instance_group_members_add(context, id, members,
+ set_delete=set_delete)
+
+
+def instance_group_member_delete(context, group_uuid, instance_id):
+ id = _instance_group_id(context, group_uuid)
+ count = _instance_group_get_query(context,
+ models.InstanceGroupMember,
+ models.InstanceGroupMember.group_id,
+ id).\
+ filter_by(instance_id=instance_id).\
+ soft_delete()
+ if count == 0:
+ raise exception.InstanceGroupMemberNotFound(group_uuid=group_uuid,
+ instance_id=instance_id)
+
+
+def instance_group_members_get(context, group_uuid):
+ id = _instance_group_id(context, group_uuid)
+ instances = model_query(context,
+ models.InstanceGroupMember.instance_id,
+ base_model=models.InstanceGroupMember).\
+ filter_by(group_id=id).all()
+ return [instance[0] for instance in instances]
+
+
+def _instance_group_policies_add(context, id, policies, set_delete=False,
+ session=None):
+ if not session:
+ session = get_session()
+
+ allpols = set(policies)
+ with session.begin(subtransactions=True):
+ query = _instance_group_model_get_query(context,
+ models.InstanceGroupPolicy,
+ id,
+ session=session)
+ if set_delete:
+ query.filter(~models.InstanceGroupPolicy.policy.in_(allpols)).\
+ soft_delete(synchronize_session=False)
+
+ query = query.filter(models.InstanceGroupPolicy.policy.in_(allpols))
+ already_existing = set()
+ for policy_ref in query.all():
+ already_existing.add(policy_ref.policy)
+
+ for policy in policies:
+ if policy in already_existing:
+ continue
+ policy_ref = models.InstanceGroupPolicy()
+ policy_ref.update({'policy': policy,
+ 'group_id': id})
+ session.add(policy_ref)
+
+ return policies
+
+
+def instance_group_policies_add(context, group_uuid, policies,
+ set_delete=False):
+ id = _instance_group_id(context, group_uuid)
+ return _instance_group_policies_add(context, id, policies,
+ set_delete=set_delete)
+
+
+def instance_group_policy_delete(context, group_uuid, policy):
+ id = _instance_group_id(context, group_uuid)
+ count = _instance_group_get_query(context,
+ models.InstanceGroupPolicy,
+ models.InstanceGroupPolicy.group_id,
+ id).\
+ filter_by(policy=policy).\
+ soft_delete()
+ if count == 0:
+ raise exception.InstanceGroupPolicyNotFound(group_uuid=group_uuid,
+ policy=policy)
+
+
+def instance_group_policies_get(context, group_uuid):
+ id = _instance_group_id(context, group_uuid)
+ policies = model_query(context,
+ models.InstanceGroupPolicy.policy,
+ base_model=models.InstanceGroupPolicy).\
+ filter_by(group_id=id).all()
+ return [policy[0] for policy in policies]
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/179_change_cells_deleted_to_int.py b/nova/db/sqlalchemy/migrate_repo/versions/179_change_cells_deleted_to_int.py
index 78c9f46f2..4a8a777b3 100644
--- a/nova/db/sqlalchemy/migrate_repo/versions/179_change_cells_deleted_to_int.py
+++ b/nova/db/sqlalchemy/migrate_repo/versions/179_change_cells_deleted_to_int.py
@@ -1,209 +1,28 @@
-from sqlalchemy import CheckConstraint
-from sqlalchemy.engine import reflection
-from sqlalchemy.ext.compiler import compiles
-from sqlalchemy import MetaData, Table, Column, Index
-from sqlalchemy import select
-from sqlalchemy.sql.expression import UpdateBase
-from sqlalchemy import Integer, Boolean
-from sqlalchemy.types import NullType, BigInteger
-
-
-all_tables = ['cells']
-# note(boris-42): We can't do migration for the dns_domains table because it
-# doesn't have `id` column.
-
-
-class InsertFromSelect(UpdateBase):
- def __init__(self, table, select):
- self.table = table
- self.select = select
-
-
-@compiles(InsertFromSelect)
-def visit_insert_from_select(element, compiler, **kw):
- return "INSERT INTO %s %s" % (
- compiler.process(element.table, asfrom=True),
- compiler.process(element.select))
-
-
-def get_default_deleted_value(table):
- if isinstance(table.c.id.type, Integer):
- return 0
- # NOTE(boris-42): There is only one other type that is used as id (String)
- return ""
-
-
-def upgrade_enterprise_dbs(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- for table_name in all_tables:
- table = Table(table_name, meta, autoload=True)
-
- new_deleted = Column('new_deleted', table.c.id.type,
- default=get_default_deleted_value(table))
- new_deleted.create(table, populate_default=True)
-
- table.update().\
- where(table.c.deleted == True).\
- values(new_deleted=table.c.id).\
- execute()
- table.c.deleted.drop()
- table.c.new_deleted.alter(name="deleted")
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 Mirantis, Inc.
+# Copyright 2013 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# @author: Boris Pavlovic, Mirantis Inc
+
+from nova.db.sqlalchemy import utils
def upgrade(migrate_engine):
- if migrate_engine.name != "sqlite":
- return upgrade_enterprise_dbs(migrate_engine)
-
- # NOTE(boris-42): sqlaclhemy-migrate can't drop column with check
- # constraints in sqlite DB and our `deleted` column has
- # 2 check constraints. So there is only one way to remove
- # these constraints:
- # 1) Create new table with the same columns, constraints
- # and indexes. (except deleted column).
- # 2) Copy all data from old to new table.
- # 3) Drop old table.
- # 4) Rename new table to old table name.
- insp = reflection.Inspector.from_engine(migrate_engine)
- meta = MetaData()
- meta.bind = migrate_engine
-
- for table_name in all_tables:
- table = Table(table_name, meta, autoload=True)
- default_deleted_value = get_default_deleted_value(table)
-
- columns = []
- for column in table.columns:
- column_copy = None
- if column.name != "deleted":
- # NOTE(boris-42): BigInteger is not supported by sqlite, so
- # after copy it will have NullType, other
- # types that are used in Nova are supported by
- # sqlite.
- if isinstance(column.type, NullType):
- column_copy = Column(column.name, BigInteger(), default=0)
- else:
- column_copy = column.copy()
- else:
- column_copy = Column('deleted', table.c.id.type,
- default=default_deleted_value)
- columns.append(column_copy)
-
- def is_deleted_column_constraint(constraint):
- # NOTE(boris-42): There is no other way to check is CheckConstraint
- # associated with deleted column.
- if not isinstance(constraint, CheckConstraint):
- return False
- sqltext = str(constraint.sqltext)
- return (sqltext.endswith("deleted in (0, 1)") or
- sqltext.endswith("deleted IN (:deleted_1, :deleted_2)"))
-
- constraints = []
- for constraint in table.constraints:
- if not is_deleted_column_constraint(constraint):
- constraints.append(constraint.copy())
-
- new_table = Table(table_name + "__tmp__", meta,
- *(columns + constraints))
- new_table.create()
-
- indexes = []
- for index in insp.get_indexes(table_name):
- column_names = [new_table.c[c] for c in index['column_names']]
- indexes.append(Index(index["name"],
- *column_names,
- unique=index["unique"]))
-
- ins = InsertFromSelect(new_table, table.select())
- migrate_engine.execute(ins)
-
- table.drop()
- [index.create(migrate_engine) for index in indexes]
-
- new_table.rename(table_name)
- new_table.update().\
- where(new_table.c.deleted == True).\
- values(deleted=new_table.c.id).\
- execute()
-
- # NOTE(boris-42): Fix value of deleted column: False -> "" or 0.
- new_table.update().\
- where(new_table.c.deleted == False).\
- values(deleted=default_deleted_value).\
- execute()
-
-
-def downgrade_enterprise_dbs(migrate_engine):
- meta = MetaData()
- meta.bind = migrate_engine
-
- for table_name in all_tables:
- table = Table(table_name, meta, autoload=True)
-
- old_deleted = Column('old_deleted', Boolean, default=False)
- old_deleted.create(table, populate_default=False)
-
- table.update().\
- where(table.c.deleted == table.c.id).\
- values(old_deleted=True).\
- execute()
-
- table.c.deleted.drop()
- table.c.old_deleted.alter(name="deleted")
+ utils.change_deleted_column_type_to_id_type(migrate_engine, 'cells')
def downgrade(migrate_engine):
- if migrate_engine.name != "sqlite":
- return downgrade_enterprise_dbs(migrate_engine)
-
- insp = reflection.Inspector.from_engine(migrate_engine)
- meta = MetaData()
- meta.bind = migrate_engine
-
- for table_name in all_tables:
- table = Table(table_name, meta, autoload=True)
-
- columns = []
- for column in table.columns:
- column_copy = None
- if column.name != "deleted":
- if isinstance(column.type, NullType):
- column_copy = Column(column.name, BigInteger(), default=0)
- else:
- column_copy = column.copy()
- else:
- column_copy = Column('deleted', Boolean, default=0)
- columns.append(column_copy)
-
- constraints = [constraint.copy() for constraint in table.constraints]
-
- new_table = Table(table_name + "__tmp__", meta,
- *(columns + constraints))
- new_table.create()
-
- indexes = []
- for index in insp.get_indexes(table_name):
- column_names = [new_table.c[c] for c in index['column_names']]
- indexes.append(Index(index["name"],
- *column_names,
- unique=index["unique"]))
-
- c_select = []
- for c in table.c:
- if c.name != "deleted":
- c_select.append(c)
- else:
- c_select.append(table.c.deleted == table.c.id)
-
- ins = InsertFromSelect(new_table, select(c_select))
- migrate_engine.execute(ins)
-
- table.drop()
- [index.create(migrate_engine) for index in indexes]
-
- new_table.rename(table_name)
- new_table.update().\
- where(new_table.c.deleted == new_table.c.id).\
- values(deleted=True).\
- execute()
+ utils.change_deleted_column_type_to_boolean(migrate_engine, 'cells')
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/180_fix_175_and_176_migration_sync_shadow_table.py b/nova/db/sqlalchemy/migrate_repo/versions/180_fix_175_and_176_migration_sync_shadow_table.py
new file mode 100644
index 000000000..a88109307
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/180_fix_175_and_176_migration_sync_shadow_table.py
@@ -0,0 +1,61 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 Mirantis, Inc.
+# Copyright 2013 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# @author: Boris Pavlovic, Mirantis Inc
+
+from sqlalchemy import MetaData, Integer, String, Table, Column
+
+
+def upgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+
+ shadow_volume_usage_cache = Table('shadow_volume_usage_cache', meta,
+ autoload=True)
+ # fix for 175 migration
+ shadow_volume_usage_cache.drop_column('instance_id')
+
+ instance_id = Column('instance_uuid', String(36))
+ project_id = Column('project_id', String(36))
+ user_id = Column('user_id', String(36))
+
+ shadow_volume_usage_cache.create_column(instance_id)
+ shadow_volume_usage_cache.create_column(project_id)
+ shadow_volume_usage_cache.create_column(user_id)
+
+ # fix for 176 migration
+ availability_zone = Column('availability_zone', String(255))
+ shadow_volume_usage_cache.create_column(availability_zone)
+
+
+def downgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+
+ shadow_volume_usage_cache = Table('shadow_volume_usage_cache', meta,
+ autoload=True)
+
+ # fix for 175 migration
+ shadow_volume_usage_cache.drop_column('instance_uuid')
+ shadow_volume_usage_cache.drop_column('user_id')
+ shadow_volume_usage_cache.drop_column('project_id')
+
+ instance_id = Column('instance_id', Integer)
+ shadow_volume_usage_cache.create_column(instance_id)
+
+ # fix for 176 migration
+ shadow_volume_usage_cache.drop_column('availability_zone')
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/181_fix_179_migration_sync_shadow_table.py b/nova/db/sqlalchemy/migrate_repo/versions/181_fix_179_migration_sync_shadow_table.py
new file mode 100644
index 000000000..2e8af266d
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/181_fix_179_migration_sync_shadow_table.py
@@ -0,0 +1,28 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 Mirantis, Inc.
+# Copyright 2013 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# @author: Boris Pavlovic, Mirantis Inc
+
+from nova.db.sqlalchemy import utils
+
+
+def upgrade(migrate_engine):
+ utils.change_deleted_column_type_to_id_type(migrate_engine, 'shadow_cells')
+
+
+def downgrade(migrate_engine):
+ utils.change_deleted_column_type_to_boolean(migrate_engine, 'shadow_cells')
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/182_fix_156_migration_sync_shadow_table.py b/nova/db/sqlalchemy/migrate_repo/versions/182_fix_156_migration_sync_shadow_table.py
new file mode 100644
index 000000000..17ad64aac
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/182_fix_156_migration_sync_shadow_table.py
@@ -0,0 +1,56 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 IBM Corp.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from sqlalchemy import MetaData, String, Table
+from sqlalchemy.dialects import postgresql
+
+
+CIDR_TABLE_COLUMNS = [
+ # table name, column name
+ ('shadow_security_group_rules', 'cidr'),
+ ('shadow_provider_fw_rules', 'cidr'),
+ ('shadow_networks', 'cidr'),
+ ('shadow_networks', 'cidr_v6')]
+
+
+def upgrade(migrate_engine):
+ """Convert String columns holding IP addresses to INET for postgresql."""
+ meta = MetaData()
+ meta.bind = migrate_engine
+ dialect = migrate_engine.url.get_dialect()
+
+ if dialect is postgresql.dialect:
+ for table, column in CIDR_TABLE_COLUMNS:
+ # can't use migrate's alter() because it does not support
+ # explicit casting
+ migrate_engine.execute(
+ "ALTER TABLE %(table)s "
+ "ALTER COLUMN %(column)s TYPE INET USING %(column)s::INET"
+ % {'table': table, 'column': column})
+ else:
+ for table, column in CIDR_TABLE_COLUMNS:
+ t = Table(table, meta, autoload=True)
+ getattr(t.c, column).alter(type=String(43))
+
+
+def downgrade(migrate_engine):
+ """Convert columns back to the larger String(255)."""
+ meta = MetaData()
+ meta.bind = migrate_engine
+ for table, column in CIDR_TABLE_COLUMNS:
+ t = Table(table, meta, autoload=True)
+ getattr(t.c, column).alter(type=String(39))
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/183_fix_157_migration_sync_shadow_table.py b/nova/db/sqlalchemy/migrate_repo/versions/183_fix_157_migration_sync_shadow_table.py
new file mode 100644
index 000000000..1f551613d
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/183_fix_157_migration_sync_shadow_table.py
@@ -0,0 +1,30 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 Mirantis, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# @author: Boris Pavlovic, Mirantis Inc
+
+from nova.db.sqlalchemy import utils
+
+
+def upgrade(migrate_engine):
+ utils.create_shadow_table(migrate_engine, 'security_group_default_rules')
+
+
+def downgrade(migrate_engine):
+ shadow_security_group_default_rules = \
+ utils.get_table(migrate_engine,
+ 'shadow_security_group_default_rules')
+ shadow_security_group_default_rules.drop()
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/184_fix_159_migration_sync_shadow_table.py b/nova/db/sqlalchemy/migrate_repo/versions/184_fix_159_migration_sync_shadow_table.py
new file mode 100644
index 000000000..bafc50fb3
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/184_fix_159_migration_sync_shadow_table.py
@@ -0,0 +1,63 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 IBM Corp.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from sqlalchemy import MetaData, String, Table
+from sqlalchemy.dialects import postgresql
+
+TABLE_COLUMNS = [
+ # table name, column name
+ ('shadow_instances', 'access_ip_v4'),
+ ('shadow_instances', 'access_ip_v6'),
+ ('shadow_networks', 'gateway'),
+ ('shadow_networks', 'gateway_v6'),
+ ('shadow_networks', 'netmask'),
+ ('shadow_networks', 'netmask_v6'),
+ ('shadow_networks', 'broadcast'),
+ ('shadow_networks', 'dns1'),
+ ('shadow_networks', 'dns2'),
+ ('shadow_networks', 'vpn_public_address'),
+ ('shadow_networks', 'vpn_private_address'),
+ ('shadow_networks', 'dhcp_start'),
+ ('shadow_fixed_ips', 'address'),
+ ('shadow_floating_ips', 'address'),
+ ('shadow_console_pools', 'address')]
+
+
+def upgrade(migrate_engine):
+ dialect = migrate_engine.url.get_dialect()
+
+ # NOTE(maurosr): this just affects mysql; postgresql uses INET
+ # type and sqlite doesn't goes fine with alter tables, so it should be done
+ # manually. This way we'll be able to keep UCs like the one inserted on
+ # version 158 which would get lost cause sqlite is not migrated as mysql or
+ # pgsql, it copies the column and data instead of execute an alter table
+ # command.
+ if dialect is not postgresql.dialect:
+ meta = MetaData(bind=migrate_engine)
+ for table, column in TABLE_COLUMNS:
+ t = Table(table, meta, autoload=True)
+ getattr(t.c, column).alter(type=String(39))
+
+
+def downgrade(migrate_engine):
+ """Convert columns back to the larger String(43) defined in version 149."""
+ dialect = migrate_engine.url.get_dialect()
+ if dialect is not postgresql.dialect:
+ meta = MetaData(bind=migrate_engine)
+ for table, column in TABLE_COLUMNS:
+ t = Table(table, meta, autoload=True)
+ getattr(t.c, column).alter(type=String(43))
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_downgrade.sql b/nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_downgrade.sql
new file mode 100644
index 000000000..a8b24c3aa
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_downgrade.sql
@@ -0,0 +1,78 @@
+BEGIN TRANSACTION;
+ /* create networks_backup table with the fields like networks was before
+ the upgrade */
+ CREATE TABLE shadow_networks_backup(
+ created_at DATETIME,
+ updated_at DATETIME,
+ deleted_at DATETIME,
+ deleted INTEGER,
+ id INTEGER NOT NULL,
+ injected BOOLEAN,
+ cidr VARCHAR(43),
+ netmask VARCHAR(43),
+ bridge VARCHAR(255),
+ gateway VARCHAR(43),
+ broadcast VARCHAR(43),
+ dns1 VARCHAR(43),
+ vlan INTEGER,
+ vpn_public_address VARCHAR(43),
+ vpn_public_port INTEGER,
+ vpn_private_address VARCHAR(43),
+ dhcp_start VARCHAR(43),
+ project_id VARCHAR(255),
+ host VARCHAR(255),
+ cidr_v6 VARCHAR(43),
+ gateway_v6 VARCHAR(43),
+ label VARCHAR(255),
+ netmask_v6 VARCHAR(43),
+ bridge_interface VARCHAR(255),
+ multi_host BOOLEAN,
+ dns2 VARCHAR(43),
+ uuid VARCHAR(36),
+ priority INTEGER,
+ rxtx_base INTEGER,
+ PRIMARY KEY (id)
+ );
+
+ /* copy data currently on networks to the backup table and drop networks
+ table */
+ INSERT INTO shadow_networks_backup SELECT * FROM shadow_networks;
+ DROP TABLE shadow_networks;
+
+ CREATE TABLE shadow_networks (
+ created_at DATETIME,
+ updated_at DATETIME,
+ deleted_at DATETIME,
+ deleted INTEGER,
+ id INTEGER NOT NULL,
+ injected BOOLEAN,
+ cidr VARCHAR(43),
+ netmask VARCHAR(43),
+ bridge VARCHAR(255),
+ gateway VARCHAR(43),
+ broadcast VARCHAR(43),
+ dns1 VARCHAR(43),
+ vlan INTEGER,
+ vpn_public_address VARCHAR(43),
+ vpn_public_port INTEGER,
+ vpn_private_address VARCHAR(43),
+ dhcp_start VARCHAR(43),
+ project_id VARCHAR(255),
+ host VARCHAR(255),
+ cidr_v6 VARCHAR(43),
+ gateway_v6 VARCHAR(43),
+ label VARCHAR(255),
+ netmask_v6 VARCHAR(43),
+ bridge_interface VARCHAR(255),
+ multi_host BOOLEAN,
+ dns2 VARCHAR(43),
+ uuid VARCHAR(36),
+ priority INTEGER,
+ rxtx_base INTEGER,
+ PRIMARY KEY (id)
+ );
+
+ /* Get data from backup table and drop it next */
+ INSERT INTO shadow_networks SELECT * FROM shadow_networks_backup;
+ DROP TABLE shadow_networks_backup;
+COMMIT;
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_upgrade.sql b/nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_upgrade.sql
new file mode 100644
index 000000000..cc5151bd7
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/184_sqlite_upgrade.sql
@@ -0,0 +1,76 @@
+BEGIN TRANSACTION;
+ /* Create a backup table with the new fields size */
+ CREATE TABLE shadow_networks_backup(
+ created_at DATETIME,
+ updated_at DATETIME,
+ deleted_at DATETIME,
+ deleted INTEGER,
+ id INTEGER NOT NULL,
+ injected BOOLEAN,
+ cidr VARCHAR(43),
+ netmask VARCHAR(39),
+ bridge VARCHAR(255),
+ gateway VARCHAR(39),
+ broadcast VARCHAR(39),
+ dns1 VARCHAR(39),
+ vlan INTEGER,
+ vpn_public_address VARCHAR(39),
+ vpn_public_port INTEGER,
+ vpn_private_address VARCHAR(39),
+ dhcp_start VARCHAR(39),
+ project_id VARCHAR(255),
+ host VARCHAR(255),
+ cidr_v6 VARCHAR(43),
+ gateway_v6 VARCHAR(39),
+ label VARCHAR(255),
+ netmask_v6 VARCHAR(39),
+ bridge_interface VARCHAR(255),
+ multi_host BOOLEAN,
+ dns2 VARCHAR(39),
+ uuid VARCHAR(36),
+ priority INTEGER,
+ rxtx_base INTEGER,
+ PRIMARY KEY (id)
+ );
+
+ /* get data from networks and the drop it */
+ INSERT INTO shadow_networks_backup SELECT * FROM shadow_networks;
+ DROP TABLE shadow_networks;
+
+ CREATE TABLE shadow_networks (
+ created_at DATETIME,
+ updated_at DATETIME,
+ deleted_at DATETIME,
+ deleted INTEGER,
+ id INTEGER NOT NULL,
+ injected BOOLEAN,
+ cidr VARCHAR(43),
+ netmask VARCHAR(39),
+ bridge VARCHAR(255),
+ gateway VARCHAR(39),
+ broadcast VARCHAR(39),
+ dns1 VARCHAR(39),
+ vlan INTEGER,
+ vpn_public_address VARCHAR(39),
+ vpn_public_port INTEGER,
+ vpn_private_address VARCHAR(39),
+ dhcp_start VARCHAR(39),
+ project_id VARCHAR(255),
+ host VARCHAR(255),
+ cidr_v6 VARCHAR(43),
+ gateway_v6 VARCHAR(39),
+ label VARCHAR(255),
+ netmask_v6 VARCHAR(39),
+ bridge_interface VARCHAR(255),
+ multi_host BOOLEAN,
+ dns2 VARCHAR(39),
+ uuid VARCHAR(36),
+ priority INTEGER,
+ rxtx_base INTEGER,
+ PRIMARY KEY (id)
+ );
+
+ /* get data from networks_backup back and drop it */
+ INSERT INTO shadow_networks SELECT * FROM shadow_networks_backup;
+ DROP TABLE shadow_networks_backup;
+COMMIT;
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/185_rename_unique_constraints.py b/nova/db/sqlalchemy/migrate_repo/versions/185_rename_unique_constraints.py
new file mode 100644
index 000000000..af7fd1f79
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/185_rename_unique_constraints.py
@@ -0,0 +1,128 @@
+# Copyright 2013 Mirantis Inc.
+# All Rights Reserved
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# @author: Victor Sergeyev, Mirantis Inc.
+#
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+from migrate.changeset import UniqueConstraint
+from migrate import ForeignKeyConstraint
+from sqlalchemy import MetaData, Table
+
+from nova.db.sqlalchemy import utils
+
+UC_DATA = {
+ # (table_name: ((columns,), old_uc_name_1), (columns,), old_uc_name_2)
+ "floating_ips": (
+ (("address", "deleted",), "uniq_address_x_deleted"),
+ ),
+ "instance_type_projects": (
+ (("instance_type_id", "project_id", "deleted"),
+ "uniq_instance_type_id_x_project_id_x_deleted"),
+ ),
+ "instance_types": (
+ (("name", "deleted"), "uniq_name_x_deleted"),
+ (("flavorid", "deleted",), "uniq_flavorid_x_deleted"),
+ ),
+ "key_pairs": (
+ (("user_id", "name", "deleted"), "key_pairs_uniq_name_and_user_id"),
+ ),
+ "networks": (
+ (("vlan", "deleted",), "uniq_vlan_x_deleted"),
+ ),
+ "task_log": (
+ (("task_name", "host", "period_beginning", "period_ending"),
+ "uniq_task_name_x_host_x_period_beginning_x_period_ending"),
+ ),
+}
+# some UC names are different for mysql and postgresql
+UC_SPEC_DB_DATA = {
+ # {engine: {table_name: (((columns,), old_uc_name), (...))}}
+ "sqlite": {
+ "instance_info_caches": (
+ (("instance_uuid",), "instance_uuid"),
+ ),
+ "virtual_interfaces": (
+ (("address",), "virtual_interfaces_instance_uuid_fkey"),
+ ),
+ },
+ "mysql": {
+ "instance_info_caches": (
+ (("instance_uuid",), "instance_uuid"),
+ ),
+ "virtual_interfaces": (
+ (("address",), "virtual_interfaces_instance_uuid_fkey"),
+ ),
+ },
+ "postgresql": {
+ "instance_info_caches": (
+ (("instance_uuid",), "instance_info_caches_instance_uuid_key"),
+ ),
+ "virtual_interfaces": (
+ (("address",), "virtual_interfaces_address_key"),
+ ),
+ },
+}
+
+
+constraint_names = {
+ "instance_info_caches": "instance_info_caches_instance_uuid_fkey",
+ "virtual_interfaces": "virtual_interfaces_instance_uuid_fkey",
+}
+
+
+def _uc_rename(migrate_engine, upgrade=True):
+ UC_DATA.update(UC_SPEC_DB_DATA[migrate_engine.name])
+
+ meta = MetaData(bind=migrate_engine)
+
+ for table in UC_DATA:
+ t = Table(table, meta, autoload=True)
+
+ for columns, old_uc_name in UC_DATA[table]:
+ new_uc_name = "uniq_{0}0{1}".format(table, "0".join(columns))
+
+ if table in constraint_names and migrate_engine.name == "mysql":
+ instances = Table("instances", meta, autoload=True)
+
+ ForeignKeyConstraint(
+ columns=[t.c.instance_uuid],
+ refcolumns=[instances.c.uuid],
+ name=constraint_names[table]
+ ).drop(engine=migrate_engine)
+
+ if upgrade:
+ old_name, new_name = old_uc_name, new_uc_name
+ else:
+ old_name, new_name = new_uc_name, old_uc_name
+
+ utils.drop_unique_constraint(migrate_engine, table,
+ old_name, *(columns))
+ UniqueConstraint(*columns, table=t, name=new_name).create()
+
+ if table in constraint_names and migrate_engine.name == "mysql":
+ ForeignKeyConstraint(
+ columns=[t.c.instance_uuid],
+ refcolumns=[instances.c.uuid],
+ name=constraint_names[table]
+ ).create(engine=migrate_engine)
+
+
+def upgrade(migrate_engine):
+ return _uc_rename(migrate_engine, upgrade=True)
+
+
+def downgrade(migrate_engine):
+ return _uc_rename(migrate_engine, upgrade=False)
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py b/nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py
new file mode 100644
index 000000000..bb16d7bbf
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/186_new_bdm_format.py
@@ -0,0 +1,262 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 OpenStack LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import itertools
+import re
+
+from sqlalchemy import Column, Integer, MetaData, String, Table
+from sqlalchemy.sql.expression import select
+
+from nova.openstack.common import log as logging
+from oslo.config import cfg
+
+
+CONF = cfg.CONF
+CONF.import_opt('default_ephemeral_format', 'nova.virt.driver')
+LOG = logging.getLogger(__name__)
+
+
+_ephemeral = re.compile('^ephemeral(\d|[1-9]\d+)$')
+
+
+def _is_ephemeral(device_name):
+ return bool(_ephemeral.match(device_name))
+
+
+def _is_swap_or_ephemeral(device_name):
+ return (device_name and
+ (device_name == 'swap' or _is_ephemeral(device_name)))
+
+
+_dev = re.compile('^/dev/')
+
+
+def strip_dev(device_name):
+ """remove leading '/dev/'."""
+ return _dev.sub('', device_name) if device_name else device_name
+
+
+def upgrade(migrate_engine):
+ meta = MetaData(bind=migrate_engine)
+
+ for table in ('block_device_mapping', 'shadow_block_device_mapping'):
+ block_device_mapping = Table(table,
+ meta, autoload=True)
+
+ source_type = Column('source_type', String(255))
+ destination_type = Column('destination_type', String(255))
+ guest_format = Column('guest_format', String(255))
+ device_type = Column('device_type', String(255))
+ disk_bus = Column('disk_bus', String(255))
+ boot_index = Column('boot_index', Integer)
+ image_id = Column('image_id', String(36))
+
+ source_type.create(block_device_mapping)
+ destination_type.create(block_device_mapping)
+ guest_format.create(block_device_mapping)
+ device_type.create(block_device_mapping)
+ disk_bus.create(block_device_mapping)
+ boot_index.create(block_device_mapping)
+ image_id.create(block_device_mapping)
+
+ device_name = block_device_mapping.c.device_name
+ device_name.alter(nullable=True)
+
+ _upgrade_bdm_v2(meta, block_device_mapping)
+
+ virtual_name = block_device_mapping.c.virtual_name
+ virtual_name.drop()
+
+
+def downgrade(migrate_engine):
+ meta = MetaData(bind=migrate_engine)
+
+ for table in ('block_device_mapping', 'shadow_block_device_mapping'):
+ block_device_mapping = Table(table, meta, autoload=True)
+
+ virtual_name = Column('virtual_name', String(255), nullable=True)
+ virtual_name.create(block_device_mapping)
+
+ _downgrade_bdm_v2(meta, block_device_mapping)
+
+ device_name = block_device_mapping.c.device_name
+ device_name.alter(nullable=True)
+
+ block_device_mapping.c.source_type.drop()
+ block_device_mapping.c.destination_type.drop()
+ block_device_mapping.c.guest_format.drop()
+ block_device_mapping.c.device_type.drop()
+ block_device_mapping.c.disk_bus.drop()
+ block_device_mapping.c.boot_index.drop()
+ block_device_mapping.c.image_id.drop()
+
+
+def _upgrade_bdm_v2(meta, bdm_table):
+ # Rows needed to do the upgrade
+ _bdm_rows_v1 = ('id', 'device_name', 'virtual_name',
+ 'snapshot_id', 'volume_id', 'instance_uuid')
+
+ _bdm_rows_v2 = ('id', 'source_type', 'destination_type', 'guest_format',
+ 'device_type', 'disk_bus', 'boot_index', 'image_id')
+
+ def _get_columns(table, names):
+ return [getattr(table.c, name) for name in names]
+
+ def _default_bdm():
+ # Set some common default values
+ default = {}
+ default['destination_type'] = 'local'
+ default['device_type'] = 'disk'
+ default['boot_index'] = -1
+ return default
+
+ instance_table = Table('instances', meta, autoload=True)
+ instance_shadow_table = Table('shadow_instances', meta, autoload=True)
+
+ for instance in itertools.chain(
+ instance_table.select().execute().fetchall(),
+ instance_shadow_table.select().execute().fetchall()):
+ # Get all the bdms for an instance
+ bdm_q = select(_get_columns(bdm_table, _bdm_rows_v1)).where(
+ bdm_table.c.instance_uuid == instance.uuid)
+
+ bdms_v1 = [val for val in bdm_q.execute().fetchall()]
+ bdms_v2 = []
+ image_bdm = None
+
+ for bdm in bdms_v1:
+ bdm_v2 = _default_bdm()
+ # Copy over some fields we'll need
+ bdm_v2['id'] = bdm['id']
+ bdm_v2['device_name'] = bdm['device_name']
+
+ virt_name = bdm.virtual_name
+ if _is_swap_or_ephemeral(virt_name):
+ bdm_v2['source_type'] = 'blank'
+
+ if virt_name == 'swap':
+ bdm_v2['guest_format'] = 'swap'
+ else:
+ bdm_v2['guest_format'] = CONF.default_ephemeral_format
+
+ bdms_v2.append(bdm_v2)
+
+ elif bdm.snapshot_id:
+ bdm_v2['source_type'] = 'snapshot'
+ bdm_v2['destination_type'] = 'volume'
+
+ bdms_v2.append(bdm_v2)
+
+ elif bdm.volume_id:
+ bdm_v2['source_type'] = 'volume'
+ bdm_v2['destination_type'] = 'volume'
+
+ bdms_v2.append(bdm_v2)
+ else: # Log a warning that the bdm is not as expected
+ LOG.warn("Got an unexpected block device %s"
+ "that cannot be converted to v2 format" % bdm)
+
+ if instance.image_ref:
+ image_bdm = _default_bdm()
+ image_bdm['source_type'] = 'image'
+ image_bdm['instance_uuid'] = instance.uuid
+ image_bdm['image_id'] = instance.image_ref
+
+ # NOTE (ndipanov): Mark only the image or the bootable volume
+ # with boot index, as we don't support it yet.
+ # Also, make sure that instances started with
+ # the old syntax of specifying an image *and*
+ # a bootable volume still have consistend data.
+ bootable = [bdm for bdm in bdms_v2
+ if strip_dev(bdm['device_name']) ==
+ strip_dev(instance.root_device_name)
+ and bdm['source_type'] != 'blank']
+
+ if len(bootable) > 1:
+ LOG.warn("Found inconsistent block device data for "
+ "instance %s - non-unique bootable device."
+ % instance.uuid)
+ if bootable:
+ bootable[0]['boot_index'] = 0
+ elif instance.image_ref:
+ image_bdm['boot_index'] = 0
+ else:
+ LOG.warn("No bootable device found for instance %s."
+ % instance.uuid)
+
+ # Update the DB
+ if image_bdm:
+ bdm_table.insert().values(**image_bdm).execute()
+
+ for bdm in bdms_v2:
+ bdm_table.update().where(
+ bdm_table.c.id == bdm['id']
+ ).values(**bdm).execute()
+
+
+def _downgrade_bdm_v2(meta, bdm_table):
+ # First delete all the image bdms
+
+ # NOTE (ndipanov): This will delete all the image bdms, even the ones
+ # that were potentially created as part of th normal
+ # operation, not only the upgrade. We have to do it,
+ # as we have no way of handling them in the old code.
+ bdm_table.delete().where(bdm_table.c.source_type == 'image').execute()
+
+ # NOTE (ndipanov): Set all NULL device_names (if any) to '' and let the
+ # Nova code deal with that. This is needed so that the
+ # return of nullable=True does not break, and should
+ # happen only if there are instances that are just
+ # starting up when we do the downgrade
+ bdm_table.update().where(
+ bdm_table.c.device_name == None
+ ).values(device_name='').execute()
+
+ instance = Table('instances', meta, autoload=True)
+ instance_shadow = Table('shadow_instances', meta, autoload=True)
+ instance_q = select([instance.c.uuid])
+ instance_shadow_q = select([instance_shadow.c.uuid])
+
+ for instance_uuid, in itertools.chain(
+ instance_q.execute().fetchall(),
+ instance_shadow_q.execute().fetchall()):
+ # Get all the bdms for an instance
+ bdm_q = select(
+ [bdm_table.c.id, bdm_table.c.source_type, bdm_table.c.guest_format]
+ ).where(
+ (bdm_table.c.instance_uuid == instance_uuid) &
+ (bdm_table.c.source_type == 'blank')
+ ).order_by(bdm_table.c.id.asc())
+
+ blanks = [
+ dict(zip(('id', 'source', 'format'), row))
+ for row in bdm_q.execute().fetchall()
+ ]
+
+ swap = [dev for dev in blanks if dev['format'] == 'swap']
+ assert len(swap) < 2
+ ephemerals = [dev for dev in blanks if dev not in swap]
+
+ for index, eph in enumerate(ephemerals):
+ eph['virtual_name'] = 'ephemeral' + str(index)
+
+ if swap:
+ swap[0]['virtual_name'] = 'swap'
+
+ for bdm in swap + ephemerals:
+ bdm_table.update().where(
+ bdm_table.c.id == bdm['id']
+ ).values(**bdm).execute()
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/187_add_instance_groups.py b/nova/db/sqlalchemy/migrate_repo/versions/187_add_instance_groups.py
new file mode 100644
index 000000000..227188e90
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/187_add_instance_groups.py
@@ -0,0 +1,121 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2012 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from migrate.changeset import UniqueConstraint
+from sqlalchemy import Column
+from sqlalchemy import DateTime
+from sqlalchemy import ForeignKey
+from sqlalchemy import Index
+from sqlalchemy import Integer
+from sqlalchemy import MetaData
+from sqlalchemy import String
+from sqlalchemy import Table
+
+from nova.db.sqlalchemy import api as db
+from nova.db.sqlalchemy import utils
+
+
+def upgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+
+ groups = Table('instance_groups', meta,
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('deleted_at', DateTime),
+ Column('deleted', Integer),
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('user_id', String(length=255)),
+ Column('project_id', String(length=255)),
+ Column('uuid', String(length=36), nullable=False),
+ Column('name', String(length=255)),
+ UniqueConstraint('uuid', 'deleted',
+ name='uniq_instance_groups0uuid0deleted'),
+ mysql_engine='InnoDB',
+ mysql_charset='utf8',
+ )
+
+ group_metadata = Table('instance_group_metadata', meta,
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('deleted_at', DateTime),
+ Column('deleted', Integer),
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('key', String(length=255)),
+ Column('value', String(length=255)),
+ Column('group_id', Integer, ForeignKey('instance_groups.id'),
+ nullable=False),
+ mysql_engine='InnoDB',
+ mysql_charset='utf8',
+ )
+
+ group_policy = Table('instance_group_policy', meta,
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('deleted_at', DateTime),
+ Column('deleted', Integer),
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('policy', String(length=255)),
+ Column('group_id', Integer, ForeignKey('instance_groups.id'),
+ nullable=False),
+ mysql_engine='InnoDB',
+ mysql_charset='utf8',
+ )
+
+ group_member = Table('instance_group_member', meta,
+ Column('created_at', DateTime),
+ Column('updated_at', DateTime),
+ Column('deleted_at', DateTime),
+ Column('deleted', Integer),
+ Column('id', Integer, primary_key=True, nullable=False),
+ Column('instance_id', String(length=255)),
+ Column('group_id', Integer, ForeignKey('instance_groups.id'),
+ nullable=False),
+ mysql_engine='InnoDB',
+ mysql_charset='utf8',
+ )
+
+ tables = [groups, group_metadata, group_policy, group_member]
+
+ # create all of the tables
+ for table in tables:
+ table.create()
+ utils.create_shadow_table(migrate_engine, table=table)
+
+ indexes = [
+ Index('instance_group_metadata_key_idx', group_metadata.c.key),
+ Index('instance_group_member_instance_idx',
+ group_member.c.instance_id),
+ Index('instance_group_policy_policy_idx', group_policy.c.policy)
+ ]
+
+ # Common indexes
+ if migrate_engine.name == 'mysql' or migrate_engine.name == 'postgresql':
+ for index in indexes:
+ index.create(migrate_engine)
+
+
+def downgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+
+ table_names = ['instance_group_member', 'instance_group_policy',
+ 'instance_group_metadata', 'instance_groups']
+ for name in table_names:
+ table = Table(name, meta, autoload=True)
+ table.drop()
+ table = Table(db._SHADOW_TABLE_PREFIX + name, meta, autoload=True)
+ table.drop()
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/188_add_reason_column_to_service.py b/nova/db/sqlalchemy/migrate_repo/versions/188_add_reason_column_to_service.py
new file mode 100644
index 000000000..ed87bcfeb
--- /dev/null
+++ b/nova/db/sqlalchemy/migrate_repo/versions/188_add_reason_column_to_service.py
@@ -0,0 +1,36 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 OpenStack Foundation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from sqlalchemy import Column, MetaData, String, Table
+
+
+def upgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+ services = Table('services', meta, autoload=True)
+ reason = Column('disabled_reason', String(255))
+ services.create_column(reason)
+ shadow_services = Table('shadow_services', meta, autoload=True)
+ shadow_services.create_column(reason.copy())
+
+
+def downgrade(migrate_engine):
+ meta = MetaData()
+ meta.bind = migrate_engine
+ services = Table('services', meta, autoload=True)
+ services.drop_column('disabled_reason')
+ shadow_services = Table('shadow_services', meta, autoload=True)
+ shadow_services.drop_column('disabled_reason')
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index f10bc8c32..99a68d2cf 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -21,7 +21,7 @@
SQLAlchemy models for nova data.
"""
-from sqlalchemy import Column, Integer, BigInteger, String, schema
+from sqlalchemy import Column, Index, Integer, BigInteger, String, schema
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import ForeignKey, DateTime, Boolean, Text, Float
from sqlalchemy.orm import relationship, backref, object_mapper
@@ -45,20 +45,24 @@ class Service(BASE, NovaBase):
"""Represents a running service on a host."""
__tablename__ = 'services'
+ __table_args__ = ()
+
id = Column(Integer, primary_key=True)
- host = Column(String(255)) # , ForeignKey('hosts.id'))
- binary = Column(String(255))
- topic = Column(String(255))
+ host = Column(String(255), nullable=True) # , ForeignKey('hosts.id'))
+ binary = Column(String(255), nullable=True)
+ topic = Column(String(255), nullable=True)
report_count = Column(Integer, nullable=False, default=0)
disabled = Column(Boolean, default=False)
+ disabled_reason = Column(String(255))
class ComputeNode(BASE, NovaBase):
"""Represents a running compute service on a host."""
__tablename__ = 'compute_nodes'
+ __table_args__ = ()
id = Column(Integer, primary_key=True)
- service_id = Column(Integer, ForeignKey('services.id'), nullable=True)
+ service_id = Column(Integer, ForeignKey('services.id'), nullable=False)
service = relationship(Service,
backref=backref('compute_node'),
foreign_keys=service_id,
@@ -66,23 +70,23 @@ class ComputeNode(BASE, NovaBase):
'ComputeNode.service_id == Service.id,'
'ComputeNode.deleted == 0)')
- vcpus = Column(Integer)
- memory_mb = Column(Integer)
- local_gb = Column(Integer)
- vcpus_used = Column(Integer)
- memory_mb_used = Column(Integer)
- local_gb_used = Column(Integer)
- hypervisor_type = Column(Text)
- hypervisor_version = Column(Integer)
- hypervisor_hostname = Column(String(255))
+ vcpus = Column(Integer, nullable=False)
+ memory_mb = Column(Integer, nullable=False)
+ local_gb = Column(Integer, nullable=False)
+ vcpus_used = Column(Integer, nullable=False)
+ memory_mb_used = Column(Integer, nullable=False)
+ local_gb_used = Column(Integer, nullable=False)
+ hypervisor_type = Column(Text, nullable=False)
+ hypervisor_version = Column(Integer, nullable=False)
+ hypervisor_hostname = Column(String(255), nullable=True)
# Free Ram, amount of activity (resize, migration, boot, etc) and
# the number of running VM's are a good starting point for what's
# important when making scheduling decisions.
- free_ram_mb = Column(Integer)
- free_disk_gb = Column(Integer)
- current_workload = Column(Integer)
- running_vms = Column(Integer)
+ free_ram_mb = Column(Integer, nullable=True)
+ free_disk_gb = Column(Integer, nullable=True)
+ current_workload = Column(Integer, nullable=True)
+ running_vms = Column(Integer, nullable=True)
# Note(masumotok): Expected Strings example:
#
@@ -95,17 +99,24 @@ class ComputeNode(BASE, NovaBase):
# above, since it is copied from <cpu> tag of getCapabilities()
# (See libvirt.virtConnection).
cpu_info = Column(Text, nullable=True)
- disk_available_least = Column(Integer)
+ disk_available_least = Column(Integer, nullable=True)
class ComputeNodeStat(BASE, NovaBase):
"""Stats related to the current workload of a compute host that are
intended to aid in making scheduler decisions."""
__tablename__ = 'compute_node_stats'
+ __table_args__ = (
+ Index('ix_compute_node_stats_compute_node_id', 'compute_node_id'),
+ Index('compute_node_stats_node_id_and_deleted_idx',
+ 'compute_node_id', 'deleted')
+ )
+
id = Column(Integer, primary_key=True)
- key = Column(String(511))
- value = Column(String(255))
- compute_node_id = Column(Integer, ForeignKey('compute_nodes.id'))
+ key = Column(String(511), nullable=False)
+ value = Column(String(255), nullable=False)
+ compute_node_id = Column(Integer, ForeignKey('compute_nodes.id'),
+ nullable=False)
primary_join = ('and_(ComputeNodeStat.compute_node_id == '
'ComputeNode.id, ComputeNodeStat.deleted == 0)')
@@ -119,16 +130,34 @@ class ComputeNodeStat(BASE, NovaBase):
class Certificate(BASE, NovaBase):
"""Represents a x509 certificate."""
__tablename__ = 'certificates'
+ __table_args__ = (
+ Index('certificates_project_id_deleted_idx', 'project_id', 'deleted'),
+ Index('certificates_user_id_deleted_idx', 'user_id', 'deleted')
+ )
id = Column(Integer, primary_key=True)
- user_id = Column(String(255))
- project_id = Column(String(255))
- file_name = Column(String(255))
+ user_id = Column(String(255), nullable=True)
+ project_id = Column(String(255), nullable=True)
+ file_name = Column(String(255), nullable=True)
class Instance(BASE, NovaBase):
"""Represents a guest VM."""
__tablename__ = 'instances'
+ __table_args__ = (
+ Index('instances_host_deleted_idx',
+ 'host', 'deleted'),
+ Index('instances_reservation_id_idx',
+ 'reservation_id'),
+ Index('instances_terminated_at_launched_at_idx',
+ 'terminated_at', 'launched_at'),
+ Index('instances_uuid_deleted_idx',
+ 'uuid', 'deleted'),
+ Index('instances_task_state_updated_at_idx',
+ 'task_state', 'updated_at'),
+ Index('instances_host_node_deleted_idx',
+ 'host', 'node', 'deleted')
+ )
injected_files = []
id = Column(Integer, primary_key=True, autoincrement=True)
@@ -158,87 +187,87 @@ class Instance(BASE, NovaBase):
def _extra_keys(self):
return ['name']
- user_id = Column(String(255))
- project_id = Column(String(255))
+ user_id = Column(String(255), nullable=True)
+ project_id = Column(String(255), nullable=True)
- image_ref = Column(String(255))
- kernel_id = Column(String(255))
- ramdisk_id = Column(String(255))
- hostname = Column(String(255))
+ image_ref = Column(String(255), nullable=True)
+ kernel_id = Column(String(255), nullable=True)
+ ramdisk_id = Column(String(255), nullable=True)
+ hostname = Column(String(255), nullable=True)
- launch_index = Column(Integer)
- key_name = Column(String(255))
+ launch_index = Column(Integer, nullable=True)
+ key_name = Column(String(255), nullable=True)
key_data = Column(Text)
- power_state = Column(Integer)
- vm_state = Column(String(255))
- task_state = Column(String(255))
+ power_state = Column(Integer, nullable=True)
+ vm_state = Column(String(255), nullable=True)
+ task_state = Column(String(255), nullable=True)
- memory_mb = Column(Integer)
- vcpus = Column(Integer)
- root_gb = Column(Integer)
- ephemeral_gb = Column(Integer)
+ memory_mb = Column(Integer, nullable=True)
+ vcpus = Column(Integer, nullable=True)
+ root_gb = Column(Integer, nullable=True)
+ ephemeral_gb = Column(Integer, nullable=True)
# This is not related to hostname, above. It refers
# to the nova node.
- host = Column(String(255)) # , ForeignKey('hosts.id'))
+ host = Column(String(255), nullable=True) # , ForeignKey('hosts.id'))
# To identify the "ComputeNode" which the instance resides in.
# This equals to ComputeNode.hypervisor_hostname.
- node = Column(String(255))
+ node = Column(String(255), nullable=True)
# *not* flavor_id
- instance_type_id = Column(Integer)
+ instance_type_id = Column(Integer, nullable=True)
- user_data = Column(Text)
+ user_data = Column(Text, nullable=True)
- reservation_id = Column(String(255))
+ reservation_id = Column(String(255), nullable=True)
- scheduled_at = Column(DateTime)
- launched_at = Column(DateTime)
- terminated_at = Column(DateTime)
+ scheduled_at = Column(DateTime, nullable=True)
+ launched_at = Column(DateTime, nullable=True)
+ terminated_at = Column(DateTime, nullable=True)
- availability_zone = Column(String(255))
+ availability_zone = Column(String(255), nullable=True)
# User editable field for display in user-facing UIs
- display_name = Column(String(255))
- display_description = Column(String(255))
+ display_name = Column(String(255), nullable=True)
+ display_description = Column(String(255), nullable=True)
# To remember on which host an instance booted.
# An instance may have moved to another host by live migration.
- launched_on = Column(Text)
- locked = Column(Boolean)
+ launched_on = Column(Text, nullable=True)
+ locked = Column(Boolean, nullable=True)
- os_type = Column(String(255))
- architecture = Column(String(255))
- vm_mode = Column(String(255))
- uuid = Column(String(36))
+ os_type = Column(String(255), nullable=True)
+ architecture = Column(String(255), nullable=True)
+ vm_mode = Column(String(255), nullable=True)
+ uuid = Column(String(36), unique=True)
- root_device_name = Column(String(255))
+ root_device_name = Column(String(255), nullable=True)
default_ephemeral_device = Column(String(255), nullable=True)
default_swap_device = Column(String(255), nullable=True)
- config_drive = Column(String(255))
+ config_drive = Column(String(255), nullable=True)
# User editable field meant to represent what ip should be used
# to connect to the instance
- access_ip_v4 = Column(types.IPAddress())
- access_ip_v6 = Column(types.IPAddress())
+ access_ip_v4 = Column(types.IPAddress(), nullable=True)
+ access_ip_v6 = Column(types.IPAddress(), nullable=True)
- auto_disk_config = Column(Boolean())
- progress = Column(Integer)
+ auto_disk_config = Column(Boolean(), nullable=True)
+ progress = Column(Integer, nullable=True)
# EC2 instance_initiated_shutdown_terminate
# True: -> 'terminate'
# False: -> 'stop'
# Note(maoy): currently Nova will always stop instead of terminate
# no matter what the flag says. So we set the default to False.
- shutdown_terminate = Column(Boolean(), default=False, nullable=False)
+ shutdown_terminate = Column(Boolean(), default=False, nullable=True)
# EC2 disable_api_termination
- disable_terminate = Column(Boolean(), default=False, nullable=False)
+ disable_terminate = Column(Boolean(), default=False, nullable=True)
# OpenStack compute cell name. This will only be set at the top of
# the cells tree and it'll be a full cell name such as 'api!hop1!hop2'
- cell_name = Column(String(255))
+ cell_name = Column(String(255), nullable=True)
class InstanceInfoCache(BASE, NovaBase):
@@ -246,6 +275,10 @@ class InstanceInfoCache(BASE, NovaBase):
Represents a cache of information about an instance
"""
__tablename__ = 'instance_info_caches'
+ __table_args__ = (
+ schema.UniqueConstraint(
+ "instance_uuid",
+ name="uniq_instance_info_caches0instance_uuid"),)
id = Column(Integer, primary_key=True, autoincrement=True)
# text column used for storing a json object of network data for api
@@ -262,6 +295,14 @@ class InstanceInfoCache(BASE, NovaBase):
class InstanceTypes(BASE, NovaBase):
"""Represent possible instance_types or flavor of VM offered."""
__tablename__ = "instance_types"
+
+ __table_args__ = (
+ schema.UniqueConstraint("flavorid", "deleted",
+ name="uniq_instance_types0flavorid0deleted"),
+ schema.UniqueConstraint("name", "deleted",
+ name="uniq_instance_types0name0deleted")
+ )
+
id = Column(Integer, primary_key=True)
name = Column(String(255))
memory_mb = Column(Integer)
@@ -432,7 +473,16 @@ class BlockDeviceMapping(BASE, NovaBase):
'Instance.uuid,'
'BlockDeviceMapping.deleted=='
'0)')
- device_name = Column(String(255), nullable=False)
+
+ source_type = Column(String(255))
+ destination_type = Column(String(255))
+ guest_format = Column(String(255))
+ device_type = Column(String(255))
+ disk_bus = Column(String(255))
+
+ boot_index = Column(Integer)
+
+ device_name = Column(String(255))
# default=False for compatibility of the existing code.
# With EC2 API,
@@ -440,14 +490,13 @@ class BlockDeviceMapping(BASE, NovaBase):
# default False for created with other timing.
delete_on_termination = Column(Boolean, default=False)
- # for ephemeral device
- virtual_name = Column(String(255), nullable=True)
-
snapshot_id = Column(String(36))
volume_id = Column(String(36), nullable=True)
volume_size = Column(Integer, nullable=True)
+ image_id = Column('image_id', String(36))
+
# for no device to suppress devices.
no_device = Column(Boolean, nullable=True)
@@ -552,7 +601,10 @@ class ProviderFirewallRule(BASE, NovaBase):
class KeyPair(BASE, NovaBase):
"""Represents a public key pair for ssh."""
__tablename__ = 'key_pairs'
- __table_args__ = (schema.UniqueConstraint("name", "user_id"), )
+ __table_args__ = (
+ schema.UniqueConstraint("name", "user_id", "deleted",
+ name="uniq_key_pairs0user_id0name0deleted"),
+ )
id = Column(Integer, primary_key=True)
name = Column(String(255))
@@ -591,8 +643,11 @@ class Migration(BASE, NovaBase):
class Network(BASE, NovaBase):
"""Represents a network."""
__tablename__ = 'networks'
- __table_args__ = (schema.UniqueConstraint("vpn_public_address",
- "vpn_public_port"), )
+ __table_args__ = (
+ schema.UniqueConstraint("vlan", "deleted",
+ name="uniq_networks0vlan0deleted"),
+ )
+
id = Column(Integer, primary_key=True)
label = Column(String(255))
@@ -628,6 +683,10 @@ class Network(BASE, NovaBase):
class VirtualInterface(BASE, NovaBase):
"""Represents a virtual interface on an instance."""
__tablename__ = 'virtual_interfaces'
+ __table_args__ = (
+ schema.UniqueConstraint("address",
+ name="unique_virtual_interfaces0address"),
+ )
id = Column(Integer, primary_key=True)
address = Column(String(255), unique=True)
network_id = Column(Integer, nullable=False)
@@ -669,6 +728,10 @@ class FixedIp(BASE, NovaBase):
class FloatingIp(BASE, NovaBase):
"""Represents a floating ip that dynamically forwards to a fixed ip."""
__tablename__ = 'floating_ips'
+ __table_args__ = (
+ schema.UniqueConstraint("address", "deleted",
+ name="uniq_floating_ips0address0deleted"),
+ )
id = Column(Integer, primary_key=True)
address = Column(types.IPAddress())
fixed_ip_id = Column(Integer, nullable=True)
@@ -757,6 +820,11 @@ class InstanceSystemMetadata(BASE, NovaBase):
class InstanceTypeProjects(BASE, NovaBase):
"""Represent projects associated instance_types."""
__tablename__ = "instance_type_projects"
+ __table_args__ = (schema.UniqueConstraint(
+ "instance_type_id", "project_id", "deleted",
+ name="uniq_instance_type_projects0instance_type_id0project_id0deleted"
+ ),
+ )
id = Column(Integer, primary_key=True)
instance_type_id = Column(Integer, ForeignKey('instance_types.id'),
nullable=False)
@@ -983,6 +1051,12 @@ class InstanceIdMapping(BASE, NovaBase):
class TaskLog(BASE, NovaBase):
"""Audit log for background periodic tasks."""
__tablename__ = 'task_log'
+ __table_args__ = (
+ schema.UniqueConstraint(
+ 'task_name', 'host', 'period_beginning', 'period_ending',
+ name="uniq_task_log0task_name0host0period_beginning0period_ending"
+ ),
+ )
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
task_name = Column(String(255), nullable=False)
state = Column(String(255), nullable=False)
@@ -992,3 +1066,72 @@ class TaskLog(BASE, NovaBase):
message = Column(String(255), nullable=False)
task_items = Column(Integer(), default=0)
errors = Column(Integer(), default=0)
+
+
+class InstanceGroupMember(BASE, NovaBase):
+ """Represents the members for an instance group."""
+ __tablename__ = 'instance_group_member'
+ id = Column(Integer, primary_key=True, nullable=False)
+ instance_id = Column(String(255), nullable=False)
+ group_id = Column(Integer, ForeignKey('instance_groups.id'),
+ nullable=False)
+
+
+class InstanceGroupPolicy(BASE, NovaBase):
+ """Represents the policy type for an instance group."""
+ __tablename__ = 'instance_group_policy'
+ id = Column(Integer, primary_key=True, nullable=False)
+ policy = Column(String(255), nullable=False)
+ group_id = Column(Integer, ForeignKey('instance_groups.id'),
+ nullable=False)
+
+
+class InstanceGroupMetadata(BASE, NovaBase):
+ """Represents a key/value pair for an instance group."""
+ __tablename__ = 'instance_group_metadata'
+ id = Column(Integer, primary_key=True, nullable=False)
+ key = Column(String(255), nullable=False)
+ value = Column(String(255), nullable=False)
+ group_id = Column(Integer, ForeignKey('instance_groups.id'),
+ nullable=False)
+
+
+class InstanceGroup(BASE, NovaBase):
+ """Represents an instance group.
+
+ A group will maintain a collection of instances and the relationship
+ between them.
+ """
+
+ __tablename__ = 'instance_groups'
+ __table_args__ = (schema.UniqueConstraint("uuid", "deleted"), )
+
+ id = Column(Integer, primary_key=True, autoincrement=True)
+ user_id = Column(String(255))
+ project_id = Column(String(255))
+ uuid = Column(String(36), nullable=False)
+ name = Column(String(255))
+ _policies = relationship(InstanceGroupPolicy, primaryjoin='and_('
+ 'InstanceGroup.id == InstanceGroupPolicy.group_id,'
+ 'InstanceGroupPolicy.deleted == 0,'
+ 'InstanceGroup.deleted == 0)')
+ _metadata = relationship(InstanceGroupMetadata, primaryjoin='and_('
+ 'InstanceGroup.id == InstanceGroupMetadata.group_id,'
+ 'InstanceGroupMetadata.deleted == 0,'
+ 'InstanceGroup.deleted == 0)')
+ _members = relationship(InstanceGroupMember, primaryjoin='and_('
+ 'InstanceGroup.id == InstanceGroupMember.group_id,'
+ 'InstanceGroupMember.deleted == 0,'
+ 'InstanceGroup.deleted == 0)')
+
+ @property
+ def policies(self):
+ return [p.policy for p in self._policies]
+
+ @property
+ def metadetails(self):
+ return dict((m.key, m.value) for m in self._metadata)
+
+ @property
+ def members(self):
+ return [m.instance_id for m in self._members]
diff --git a/nova/db/sqlalchemy/utils.py b/nova/db/sqlalchemy/utils.py
index f0eece661..6a24ecb97 100644
--- a/nova/db/sqlalchemy/utils.py
+++ b/nova/db/sqlalchemy/utils.py
@@ -16,12 +16,22 @@
# under the License.
from migrate.changeset import UniqueConstraint
+from sqlalchemy import Boolean
+from sqlalchemy import CheckConstraint
+from sqlalchemy import Column
from sqlalchemy.engine import reflection
+from sqlalchemy.exc import OperationalError
+from sqlalchemy.exc import ProgrammingError
from sqlalchemy.ext.compiler import compiles
from sqlalchemy import func
-from sqlalchemy import MetaData, Table, Column, Index
-from sqlalchemy.sql.expression import UpdateBase, literal_column
+from sqlalchemy import Index
+from sqlalchemy import Integer
+from sqlalchemy import MetaData
+from sqlalchemy.sql.expression import literal_column
+from sqlalchemy.sql.expression import UpdateBase
from sqlalchemy.sql import select
+from sqlalchemy import String
+from sqlalchemy import Table
from sqlalchemy.types import NullType
from nova.db.sqlalchemy import api as db
@@ -234,8 +244,7 @@ def create_shadow_table(migrate_engine, table_name=None, table=None,
are required only for columns that have unsupported
types by sqlite. For example BigInteger.
"""
- meta = MetaData()
- meta.bind = migrate_engine
+ meta = MetaData(bind=migrate_engine)
if table_name is None and table is None:
raise exception.NovaException(_("Specify `table_name` or `table` "
@@ -256,11 +265,220 @@ def create_shadow_table(migrate_engine, table_name=None, table=None,
else:
columns.append(column.copy())
- shadow_table = Table(db._SHADOW_TABLE_PREFIX + table.name, meta, *columns,
+ shadow_table_name = db._SHADOW_TABLE_PREFIX + table.name
+ shadow_table = Table(shadow_table_name, meta, *columns,
mysql_engine='InnoDB')
try:
shadow_table.create()
+ except (OperationalError, ProgrammingError):
+ LOG.info(repr(shadow_table))
+ LOG.exception(_('Exception while creating table.'))
+ raise exception.ShadowTableExists(name=shadow_table_name)
except Exception:
LOG.info(repr(shadow_table))
LOG.exception(_('Exception while creating table.'))
- raise
+
+
+def _get_default_deleted_value(table):
+ if isinstance(table.c.id.type, Integer):
+ return 0
+ if isinstance(table.c.id.type, String):
+ return ""
+ raise exception.NovaException(_("Unsupported id columns type"))
+
+
+def _restore_indexes_on_deleted_columns(migrate_engine, table_name, indexes):
+ table = get_table(migrate_engine, table_name)
+
+ insp = reflection.Inspector.from_engine(migrate_engine)
+ real_indexes = insp.get_indexes(table_name)
+ existing_index_names = dict([(index['name'], index['column_names'])
+ for index in real_indexes])
+
+ # NOTE(boris-42): Restore indexes on `deleted` column
+ for index in indexes:
+ if 'deleted' not in index['column_names']:
+ continue
+ name = index['name']
+ if name in existing_index_names:
+ column_names = [table.c[c] for c in existing_index_names[name]]
+ old_index = Index(name, *column_names, unique=index["unique"])
+ old_index.drop(migrate_engine)
+
+ column_names = [table.c[c] for c in index['column_names']]
+ new_index = Index(index["name"], *column_names, unique=index["unique"])
+ new_index.create(migrate_engine)
+
+
+def change_deleted_column_type_to_boolean(migrate_engine, table_name,
+ **col_name_col_instance):
+ if migrate_engine.name == "sqlite":
+ return _change_deleted_column_type_to_boolean_sqlite(migrate_engine,
+ table_name,
+ **col_name_col_instance)
+ insp = reflection.Inspector.from_engine(migrate_engine)
+ indexes = insp.get_indexes(table_name)
+
+ table = get_table(migrate_engine, table_name)
+
+ old_deleted = Column('old_deleted', Boolean, default=False)
+ old_deleted.create(table, populate_default=False)
+
+ table.update().\
+ where(table.c.deleted == table.c.id).\
+ values(old_deleted=True).\
+ execute()
+
+ table.c.deleted.drop()
+ table.c.old_deleted.alter(name="deleted")
+
+ _restore_indexes_on_deleted_columns(migrate_engine, table_name, indexes)
+
+
+def _change_deleted_column_type_to_boolean_sqlite(migrate_engine, table_name,
+ **col_name_col_instance):
+ insp = reflection.Inspector.from_engine(migrate_engine)
+ table = get_table(migrate_engine, table_name)
+
+ columns = []
+ for column in table.columns:
+ column_copy = None
+ if column.name != "deleted":
+ if isinstance(column.type, NullType):
+ column_copy = _get_not_supported_column(col_name_col_instance,
+ column.name)
+ else:
+ column_copy = column.copy()
+ else:
+ column_copy = Column('deleted', Boolean, default=0)
+ columns.append(column_copy)
+
+ constraints = [constraint.copy() for constraint in table.constraints]
+
+ meta = MetaData(bind=migrate_engine)
+ new_table = Table(table_name + "__tmp__", meta,
+ *(columns + constraints))
+ new_table.create()
+
+ indexes = []
+ for index in insp.get_indexes(table_name):
+ column_names = [new_table.c[c] for c in index['column_names']]
+ indexes.append(Index(index["name"], *column_names,
+ unique=index["unique"]))
+
+ c_select = []
+ for c in table.c:
+ if c.name != "deleted":
+ c_select.append(c)
+ else:
+ c_select.append(table.c.deleted == table.c.id)
+
+ ins = InsertFromSelect(new_table, select(c_select))
+ migrate_engine.execute(ins)
+
+ table.drop()
+ [index.create(migrate_engine) for index in indexes]
+
+ new_table.rename(table_name)
+ new_table.update().\
+ where(new_table.c.deleted == new_table.c.id).\
+ values(deleted=True).\
+ execute()
+
+
+def change_deleted_column_type_to_id_type(migrate_engine, table_name,
+ **col_name_col_instance):
+ if migrate_engine.name == "sqlite":
+ return _change_deleted_column_type_to_id_type_sqlite(migrate_engine,
+ table_name,
+ **col_name_col_instance)
+ insp = reflection.Inspector.from_engine(migrate_engine)
+ indexes = insp.get_indexes(table_name)
+
+ table = get_table(migrate_engine, table_name)
+
+ new_deleted = Column('new_deleted', table.c.id.type,
+ default=_get_default_deleted_value(table))
+ new_deleted.create(table, populate_default=True)
+
+ table.update().\
+ where(table.c.deleted == True).\
+ values(new_deleted=table.c.id).\
+ execute()
+ table.c.deleted.drop()
+ table.c.new_deleted.alter(name="deleted")
+
+ _restore_indexes_on_deleted_columns(migrate_engine, table_name, indexes)
+
+
+def _change_deleted_column_type_to_id_type_sqlite(migrate_engine, table_name,
+ **col_name_col_instance):
+ # NOTE(boris-42): sqlaclhemy-migrate can't drop column with check
+ # constraints in sqlite DB and our `deleted` column has
+ # 2 check constraints. So there is only one way to remove
+ # these constraints:
+ # 1) Create new table with the same columns, constraints
+ # and indexes. (except deleted column).
+ # 2) Copy all data from old to new table.
+ # 3) Drop old table.
+ # 4) Rename new table to old table name.
+ insp = reflection.Inspector.from_engine(migrate_engine)
+ meta = MetaData(bind=migrate_engine)
+ table = Table(table_name, meta, autoload=True)
+ default_deleted_value = _get_default_deleted_value(table)
+
+ columns = []
+ for column in table.columns:
+ column_copy = None
+ if column.name != "deleted":
+ if isinstance(column.type, NullType):
+ column_copy = _get_not_supported_column(col_name_col_instance,
+ column.name)
+ else:
+ column_copy = column.copy()
+ else:
+ column_copy = Column('deleted', table.c.id.type,
+ default=default_deleted_value)
+ columns.append(column_copy)
+
+ def is_deleted_column_constraint(constraint):
+ # NOTE(boris-42): There is no other way to check is CheckConstraint
+ # associated with deleted column.
+ if not isinstance(constraint, CheckConstraint):
+ return False
+ sqltext = str(constraint.sqltext)
+ return (sqltext.endswith("deleted in (0, 1)") or
+ sqltext.endswith("deleted IN (:deleted_1, :deleted_2)"))
+
+ constraints = []
+ for constraint in table.constraints:
+ if not is_deleted_column_constraint(constraint):
+ constraints.append(constraint.copy())
+
+ new_table = Table(table_name + "__tmp__", meta,
+ *(columns + constraints))
+ new_table.create()
+
+ indexes = []
+ for index in insp.get_indexes(table_name):
+ column_names = [new_table.c[c] for c in index['column_names']]
+ indexes.append(Index(index["name"], *column_names,
+ unique=index["unique"]))
+
+ ins = InsertFromSelect(new_table, table.select())
+ migrate_engine.execute(ins)
+
+ table.drop()
+ [index.create(migrate_engine) for index in indexes]
+
+ new_table.rename(table_name)
+ new_table.update().\
+ where(new_table.c.deleted == True).\
+ values(deleted=new_table.c.id).\
+ execute()
+
+ # NOTE(boris-42): Fix value of deleted column: False -> "" or 0.
+ new_table.update().\
+ where(new_table.c.deleted == False).\
+ values(deleted=default_deleted_value).\
+ execute()
diff --git a/nova/exception.py b/nova/exception.py
index dfa31941a..d8ad08131 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -73,7 +73,7 @@ def wrap_exception(notifier=None, publisher_id=None, event_type=None,
# contain confidential information.
try:
return f(self, context, *args, **kw)
- except Exception, e:
+ except Exception as e:
with excutils.save_and_reraise_exception():
if notifier:
payload = dict(exception=e)
@@ -221,6 +221,17 @@ class InvalidBDMVolume(InvalidBDM):
"failed to get volume %(id)s.")
+class InvalidBDMFormat(InvalidBDM):
+ message = _("Block Device Mapping is Invalid: "
+ "some fields are not recognized, "
+ "or have invalid values.")
+
+
+class InvalidBDMForLegacy(InvalidBDM):
+ message = _("Block Device Mapping cannot "
+ "be converted to legacy format. ")
+
+
class VolumeUnattached(Invalid):
message = _("Volume %(volume_id)s is not attached to anything")
@@ -895,7 +906,7 @@ class RotationRequiredForBackup(NovaException):
class KeyPairExists(Duplicate):
- message = _("Key pair %(key_name)s already exists.")
+ message = _("Key pair '%(key_name)s' already exists.")
class InstanceExists(Duplicate):
@@ -953,10 +964,6 @@ class ResizeError(NovaException):
message = _("Resize error: %(reason)s")
-class ImageTooLarge(NovaException):
- message = _("Image is larger than instance type allows")
-
-
class InstanceTypeMemoryTooSmall(NovaException):
message = _("Instance type's memory is too small for requested image.")
@@ -1171,7 +1178,7 @@ class InstanceRecreateNotSupported(Invalid):
class ServiceGroupUnavailable(NovaException):
- message = _("The service from servicegroup driver %(driver) is "
+ message = _("The service from servicegroup driver %(driver)s is "
"temporarily unavailable.")
@@ -1203,8 +1210,50 @@ class RescheduledException(NovaException):
"%(reason)s")
+class ShadowTableExists(NovaException):
+ message = _("Shadow table with name %(name)s already exists.")
+
+
class InstanceFaultRollback(NovaException):
def __init__(self, inner_exception=None):
message = _("Instance rollback performed due to: %s")
self.inner_exception = inner_exception
super(InstanceFaultRollback, self).__init__(message % inner_exception)
+
+
+class UnsupportedObjectError(NovaException):
+ message = _('Unsupported object type %(objtype)s')
+
+
+class OrphanedObjectError(NovaException):
+ message = _('Cannot call %(method)s on orphaned %(objtype)s object')
+
+
+class IncompatibleObjectVersion(NovaException):
+ message = _('Version %(objver)s of %(objname)s is not supported')
+
+
+class CoreAPIMissing(NovaException):
+ message = _("Core API extensions are missing: %(missing_apis)s")
+
+
+class InstanceGroupNotFound(NotFound):
+ message = _("Instance group %(group_uuid)s could not be found.")
+
+
+class InstanceGroupIdExists(Duplicate):
+ message = _("Instance group %(group_uuid)s already exists.")
+
+
+class InstanceGroupMetadataNotFound(NotFound):
+ message = _("Instance group %(group_uuid)s has no metadata with "
+ "key %(metadata_key)s.")
+
+
+class InstanceGroupMemberNotFound(NotFound):
+ message = _("Instance group %(group_uuid)s has no member with "
+ "id %(instance_id)s.")
+
+
+class InstanceGroupPolicyNotFound(NotFound):
+ message = _("Instance group %(group_uuid)s has no policy %(policy)s.")
diff --git a/nova/filters.py b/nova/filters.py
index 18e3a7d66..e1f65658a 100644
--- a/nova/filters.py
+++ b/nova/filters.py
@@ -54,8 +54,16 @@ class BaseFilterHandler(loadables.BaseLoader):
list_objs = list(objs)
LOG.debug("Starting with %d host(s)", len(list_objs))
for filter_cls in filter_classes:
- list_objs = list(filter_cls().filter_all(list_objs,
- filter_properties))
- LOG.debug("Filter %s returned %d host(s)",
- filter_cls.__name__, len(list_objs))
+ cls_name = filter_cls.__name__
+ objs = filter_cls().filter_all(list_objs,
+ filter_properties)
+ if objs is None:
+ LOG.debug("Filter %(cls_name)s says to stop filtering",
+ {'cls_name': cls_name})
+ return
+ list_objs = list(objs)
+ LOG.debug("Filter %(cls_name)s returned %(obj_len)d host(s)",
+ {'cls_name': cls_name, 'obj_len': len(list_objs)})
+ if len(list_objs) == 0:
+ break
return list_objs
diff --git a/nova/hacking/checks.py b/nova/hacking/checks.py
index 49fbf15f4..89ad7c554 100644
--- a/nova/hacking/checks.py
+++ b/nova/hacking/checks.py
@@ -27,5 +27,29 @@ def import_no_db_in_virt(logical_line, filename):
yield (0, "N307: nova.db import not allowed in nova/virt/*")
+def except_python3x_compatible(logical_line, filename):
+ """Check for except statements to be Python 3.x compatible
+
+ As of Python 3.x, the construct "except x,y:" has been removed.
+
+ N308
+ """
+
+ def is_old_style_except(logical_line):
+ # Should match:
+ # except ProcessExecutionError, exn:
+ # Should not match:
+ # except UncodeError:
+ # except (x,y):
+ return (',' in logical_line
+ and ')' not in logical_line.rpartition(',')[2])
+
+ if ("except " in logical_line
+ and logical_line.endswith(':')
+ and is_old_style_except(logical_line)):
+ yield(0, "N308: Python 3.x incompatible 'except x,y:' construct")
+
+
def factory(register):
register(import_no_db_in_virt)
+ register(except_python3x_compatible)
diff --git a/nova/image/s3.py b/nova/image/s3.py
index f08cbcdcb..42cb97170 100644
--- a/nova/image/s3.py
+++ b/nova/image/s3.py
@@ -283,10 +283,9 @@ class S3ImageService(object):
def _s3_create(self, context, metadata):
"""Gets a manifest from s3 and makes an image."""
-
image_path = tempfile.mkdtemp(dir=CONF.image_decryption_dir)
- image_location = metadata['properties']['image_location']
+ image_location = metadata['properties']['image_location'].lstrip('/')
bucket_name = image_location.split('/')[0]
manifest_path = image_location[len(bucket_name) + 1:]
bucket = self._conn(context).get_bucket(bucket_name)
@@ -313,74 +312,79 @@ class S3ImageService(object):
self.service.update(context, image_uuid, metadata, image_data,
purge_props=False)
- _update_image_state(context, image_uuid, 'downloading')
-
- try:
- parts = []
- elements = manifest.find('image').getiterator('filename')
- for fn_element in elements:
- part = self._download_file(bucket,
- fn_element.text,
- image_path)
- parts.append(part)
-
- # NOTE(vish): this may be suboptimal, should we use cat?
- enc_filename = os.path.join(image_path, 'image.encrypted')
- with open(enc_filename, 'w') as combined:
- for filename in parts:
- with open(filename) as part:
- shutil.copyfileobj(part, combined)
-
- except Exception:
- LOG.exception(_("Failed to download %(image_location)s "
- "to %(image_path)s"), log_vars)
- _update_image_state(context, image_uuid, 'failed_download')
- return
-
- _update_image_state(context, image_uuid, 'decrypting')
-
try:
- hex_key = manifest.find('image/ec2_encrypted_key').text
- encrypted_key = binascii.a2b_hex(hex_key)
- hex_iv = manifest.find('image/ec2_encrypted_iv').text
- encrypted_iv = binascii.a2b_hex(hex_iv)
-
- dec_filename = os.path.join(image_path, 'image.tar.gz')
- self._decrypt_image(context, enc_filename, encrypted_key,
- encrypted_iv, dec_filename)
- except Exception:
- LOG.exception(_("Failed to decrypt %(image_location)s "
- "to %(image_path)s"), log_vars)
- _update_image_state(context, image_uuid, 'failed_decrypt')
- return
-
- _update_image_state(context, image_uuid, 'untarring')
+ _update_image_state(context, image_uuid, 'downloading')
+
+ try:
+ parts = []
+ elements = manifest.find('image').getiterator('filename')
+ for fn_element in elements:
+ part = self._download_file(bucket,
+ fn_element.text,
+ image_path)
+ parts.append(part)
+
+ # NOTE(vish): this may be suboptimal, should we use cat?
+ enc_filename = os.path.join(image_path, 'image.encrypted')
+ with open(enc_filename, 'w') as combined:
+ for filename in parts:
+ with open(filename) as part:
+ shutil.copyfileobj(part, combined)
+
+ except Exception:
+ LOG.exception(_("Failed to download %(image_location)s "
+ "to %(image_path)s"), log_vars)
+ _update_image_state(context, image_uuid, 'failed_download')
+ return
+
+ _update_image_state(context, image_uuid, 'decrypting')
+
+ try:
+ hex_key = manifest.find('image/ec2_encrypted_key').text
+ encrypted_key = binascii.a2b_hex(hex_key)
+ hex_iv = manifest.find('image/ec2_encrypted_iv').text
+ encrypted_iv = binascii.a2b_hex(hex_iv)
+
+ dec_filename = os.path.join(image_path, 'image.tar.gz')
+ self._decrypt_image(context, enc_filename, encrypted_key,
+ encrypted_iv, dec_filename)
+ except Exception:
+ LOG.exception(_("Failed to decrypt %(image_location)s "
+ "to %(image_path)s"), log_vars)
+ _update_image_state(context, image_uuid, 'failed_decrypt')
+ return
+
+ _update_image_state(context, image_uuid, 'untarring')
+
+ try:
+ unz_filename = self._untarzip_image(image_path,
+ dec_filename)
+ except Exception:
+ LOG.exception(_("Failed to untar %(image_location)s "
+ "to %(image_path)s"), log_vars)
+ _update_image_state(context, image_uuid, 'failed_untar')
+ return
+
+ _update_image_state(context, image_uuid, 'uploading')
+ try:
+ with open(unz_filename) as image_file:
+ _update_image_data(context, image_uuid, image_file)
+ except Exception:
+ LOG.exception(_("Failed to upload %(image_location)s "
+ "to %(image_path)s"), log_vars)
+ _update_image_state(context, image_uuid, 'failed_upload')
+ return
+
+ metadata = {'status': 'active',
+ 'properties': {'image_state': 'available'}}
+ self.service.update(context, image_uuid, metadata,
+ purge_props=False)
- try:
- unz_filename = self._untarzip_image(image_path, dec_filename)
- except Exception:
- LOG.exception(_("Failed to untar %(image_location)s "
- "to %(image_path)s"), log_vars)
- _update_image_state(context, image_uuid, 'failed_untar')
+ shutil.rmtree(image_path)
+ except exception.ImageNotFound:
+ LOG.info(_("Image %s was deleted underneath us"), image_uuid)
return
- _update_image_state(context, image_uuid, 'uploading')
- try:
- with open(unz_filename) as image_file:
- _update_image_data(context, image_uuid, image_file)
- except Exception:
- LOG.exception(_("Failed to upload %(image_location)s "
- "to %(image_path)s"), log_vars)
- _update_image_state(context, image_uuid, 'failed_upload')
- return
-
- metadata = {'status': 'active',
- 'properties': {'image_state': 'available'}}
- self.service.update(context, image_uuid, metadata,
- purge_props=False)
-
- shutil.rmtree(image_path)
-
eventlet.spawn_n(delayed_create)
return image
@@ -392,14 +396,14 @@ class S3ImageService(object):
key = self.cert_rpcapi.decrypt_text(elevated,
project_id=context.project_id,
text=base64.b64encode(encrypted_key))
- except Exception, exc:
+ except Exception as exc:
msg = _('Failed to decrypt private key: %s') % exc
raise exception.NovaException(msg)
try:
iv = self.cert_rpcapi.decrypt_text(elevated,
project_id=context.project_id,
text=base64.b64encode(encrypted_iv))
- except Exception, exc:
+ except Exception as exc:
raise exception.NovaException(_('Failed to decrypt initialization '
'vector: %s') % exc)
@@ -410,7 +414,7 @@ class S3ImageService(object):
'-K', '%s' % (key,),
'-iv', '%s' % (iv,),
'-out', '%s' % (decrypted_filename,))
- except processutils.ProcessExecutionError, exc:
+ except processutils.ProcessExecutionError as exc:
raise exception.NovaException(_('Failed to decrypt image file '
'%(image_file)s: %(err)s') %
{'image_file': encrypted_filename,
diff --git a/nova/locale/bg_BG/LC_MESSAGES/nova.po b/nova/locale/bg_BG/LC_MESSAGES/nova.po
index 478e88e5b..ae147ad0c 100644
--- a/nova/locale/bg_BG/LC_MESSAGES/nova.po
+++ b/nova/locale/bg_BG/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nova\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2013-05-18 19:07+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Bulgarian (Bulgaria) "
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,211 +157,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -369,85 +379,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1037 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1495,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1708,7 +1705,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,6 +1727,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1804,169 +1802,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2015,37 +2013,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2070,6 +2108,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2119,21 +2158,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2144,6 +2187,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2163,12 +2207,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2213,7 +2257,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2228,20 +2272,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2313,10 +2360,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2343,217 +2392,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2724,28 +2846,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2837,14 +2964,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2892,7 +3019,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3020,11 +3147,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3135,16 +3257,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3154,7 +3276,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3171,16 +3293,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3192,11 +3314,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3245,16 +3367,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3264,124 +3415,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3766,238 +3949,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4100,650 +4299,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4857,18 +5051,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4946,54 +5140,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5010,56 +5220,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5095,32 +5309,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5139,15 +5358,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5297,67 +5520,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5518,79 +5741,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5600,65 +5822,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5670,6 +5897,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5705,17 +5951,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5812,21 +6058,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6000,18 +6302,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6040,44 +6347,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6338,38 +6645,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6441,10 +6748,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6452,6 +6766,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6487,14 +6806,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6564,46 +6883,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6642,12 +6961,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6692,43 +7011,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6741,17 +7023,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6760,7 +7045,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6777,25 +7062,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6805,22 +7097,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6882,30 +7174,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7058,22 +7388,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7093,7 +7423,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7103,28 +7433,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7699,7 +8029,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7871,50 +8201,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8051,12 +8381,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8214,7 +8544,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8248,235 +8578,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8484,73 +8814,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8558,50 +8888,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8611,67 +8941,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8704,11 +9034,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8869,7 +9199,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8877,17 +9207,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8975,52 +9305,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9030,20 +9360,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9067,60 +9397,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9166,7 +9496,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9317,27 +9647,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9403,18 +9733,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9747,54 +10077,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9915,107 +10245,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10031,24 +10365,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10185,374 +10519,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10560,62 +10887,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10625,206 +10952,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10904,7 +11231,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10912,7 +11239,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10965,3 +11292,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/bs/LC_MESSAGES/nova.po b/nova/locale/bs/LC_MESSAGES/nova.po
index 806703e6d..3fadeed1d 100644
--- a/nova/locale/bs/LC_MESSAGES/nova.po
+++ b/nova/locale/bs/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-01-19 20:22+0000\n"
"Last-Translator: yazar <zrncescientiae@gmail.com>\n"
"Language-Team: Bosnian <bs@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,211 +156,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -368,85 +378,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -454,1037 +464,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1494,17 +1491,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1707,7 +1704,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,6 +1726,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1803,169 +1801,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2014,37 +2012,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2069,6 +2107,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2118,21 +2157,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2143,6 +2186,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2162,12 +2206,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2212,7 +2256,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2227,20 +2271,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2312,10 +2359,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2342,217 +2391,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2723,28 +2845,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2836,14 +2963,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2891,7 +3018,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3019,11 +3146,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3134,16 +3256,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3153,7 +3275,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3170,16 +3292,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3191,11 +3313,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3244,16 +3366,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3263,124 +3414,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3765,238 +3948,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4099,650 +4298,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4856,18 +5050,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4945,54 +5139,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5009,56 +5219,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5094,32 +5308,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5138,15 +5357,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5296,67 +5519,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5517,79 +5740,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5599,65 +5821,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5669,6 +5896,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5704,17 +5950,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5811,21 +6057,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -5999,18 +6301,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6039,44 +6346,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6337,38 +6644,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6440,10 +6747,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6451,6 +6765,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6486,14 +6805,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6563,46 +6882,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6641,12 +6960,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6691,43 +7010,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6740,17 +7022,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6759,7 +7044,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6776,25 +7061,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6804,22 +7096,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6881,30 +7173,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7057,22 +7387,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7092,7 +7422,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7102,28 +7432,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7698,7 +8028,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7870,50 +8200,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8050,12 +8380,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8213,7 +8543,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8247,235 +8577,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8483,73 +8813,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8557,50 +8887,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8610,67 +8940,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8703,11 +9033,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8868,7 +9198,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8876,17 +9206,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8974,52 +9304,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9029,20 +9359,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9066,60 +9396,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9165,7 +9495,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9316,27 +9646,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9402,18 +9732,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9746,54 +10076,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9914,107 +10244,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10030,24 +10364,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10184,374 +10518,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10559,62 +10886,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10624,206 +10951,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10903,7 +11230,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10911,7 +11238,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10964,67 +11291,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/ca/LC_MESSAGES/nova.po b/nova/locale/ca/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..fdd080ad2
--- /dev/null
+++ b/nova/locale/ca/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Catalan translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Catalan "
+"(http://www.transifex.com/projects/p/openstack/language/ca/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/cs/LC_MESSAGES/nova.po b/nova/locale/cs/LC_MESSAGES/nova.po
index f49efc42f..9602bb2d6 100644
--- a/nova/locale/cs/LC_MESSAGES/nova.po
+++ b/nova/locale/cs/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-05-17 20:04+0000\n"
"Last-Translator: Zbyněk Schwarz <Unknown>\n"
"Language-Team: Czech <cs@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr "block_device_list %s"
@@ -162,74 +162,84 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "Svazek %(volume_id)s není k niÄemu pÅ™ipojen"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Data páru klíÄů jsou neplatná"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "Požadavek je neplatný."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "Obdržen neplatný vstup"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Neplatný svazek"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr "Neplatná metadata"
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "Neplatný klÃ­Ä metadata"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "Neplatný rozsah portů %(from_port)s:%(to_port)s. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Neplatný protokol IP %(protocol)s."
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "Neplatný typ obsahu %(content_type)s."
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "Neplatný cidr %(cidr)s."
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
@@ -238,16 +248,16 @@ msgstr ""
"Nelze provést Äinnost '%(action)s' na agregátu %(aggregate_id)s. Důvod: "
"%(reason)s."
-#: nova/exception.py:291
+#: nova/exception.py:302
#, fuzzy, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr "Nebyl nalezen žádný platný hostitel. %(reason)s"
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
@@ -256,119 +266,119 @@ msgstr ""
"Instance %(instance_uuid)s v %(attr)s %(state)s. Nelze %(method)s "
"zatímco je instance v tomto stavu."
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "Instance %(instance_id)s není spuštěna."
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr "Instance %(instance_id)s není v nouzovém režimu."
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "Instance %(instance_id)s není v nouzovém režimu."
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "Instance %(instance_id)s není pozastavena."
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Nelze pozastavit instanci"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Nelze vložit soubor: %(resp)r"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Nelze nastavit heslo správce. Instance %s není spuštěna"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Nelze nastavit heslo správce. Instance %s není spuštěna"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Nelze restartovat instanci"
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "Nelze restartovat instanci"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Nelze restartovat instanci"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "Služba je v tuto chvíli nedostupná."
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "Služba výpoÄtu je v tuto chvíli nedostupná."
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
"Nelze pÅ™esunout instanci (%(instance_id)s) na souÄasného hostitele "
"(%(host)s)."
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr "Zadaný typ hypervizoru je neplatný."
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr "Instance vyžaduje novější verzi hypervizoru, než byla poskytnuta."
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr "Zadaná cesta disku (%(path)s) již existuje, oÄekává se, že nebude."
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr "Zadaná cesta zařízení (%(path)s) je neplatná."
-#: nova/exception.py:383
+#: nova/exception.py:394
#, fuzzy, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr "Zadaná cesta zařízení (%(path)s) je neplatná."
-#: nova/exception.py:388
+#: nova/exception.py:399
#, fuzzy, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr "Zadaná cesta zařízení (%(path)s) je neplatná."
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "Nepřijatelné informace o procesoru"
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s není platná IP adresa v4/6."
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
@@ -377,7 +387,7 @@ msgstr ""
"ZnaÄka VLAN není vhodná pro skupinu portů %(bridge)s. OÄekávaná znaÄka "
"VLAN je %(tag)s, ale znaÄka pÅ™ipojená ke skupinÄ› portů je %(pgroup)s."
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -388,86 +398,86 @@ msgstr ""
" fyzickým adaptérem. OÄekávaný vSwitch je %(expected)s, ale spojený je "
"%(actual)s."
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "Formát disku %(disk_format)s není přijatelný"
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr "Obraz %(image_id)s je nepřijatelný: %(reason)s"
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr "Instance %(instance_id)s je nepřijatelná: %(reason)s"
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr "Id Ec2 %(ec2_id)s je nepřijatelné."
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "Neplatný cidr %(cidr)s."
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "instance - %s není přítomno"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr "Zdroj nemohl být nalezen."
-#: nova/exception.py:447
+#: nova/exception.py:458
#, fuzzy, python-format
msgid "No agent-build associated with id %(id)s."
msgstr "Žádná pevná IP není spojena s %(id)s."
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr "Svazek %(volume_id)s nemohl být nastaven."
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr "Snímek %(snapshot_id)s nemohl být nalezen."
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr "Nenalezeno žádné cílové id ve svazku %(volume_id)s."
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr "Źádný disk ve %(location)s"
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr "Nelze najít obslužnou rutinu pro svazek %(driver_type)s."
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr "Neplatný href %(image_href)s obrazu."
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr "Obraz %(image_id)s nemohl být nalezen."
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -475,65 +485,65 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "Projekt %(project_id)s nemohl být nalezen."
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr "Nelze najít SR pro Ätení/zápis VDI."
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "Síť %(network_id)s nemohla být nalezena."
-#: nova/exception.py:498
+#: nova/exception.py:509
#, fuzzy, python-format
msgid "Network %(network_id)s is still in use."
msgstr "Síť %(network_id)s nemohla být nalezena."
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr "%(req)s je vyžadováno pro vytvoření sítě."
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "Síť %(network_id)s nemohla být nalezena."
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "Snímek %(snapshot_id)s nemohl být nalezen."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr "Síť nemohla být pro most %(bridge)s nalezena."
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr "Síť nemohla být pro uuid %(uuid)s nalezena."
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr "Síť nemohla být pro cidr %(cidr)s nalezena."
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr "Síť nemohla být pro instance %(instance_id)s nalezena."
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "Źádné sítÄ› nejsou urÄeny."
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
@@ -542,238 +552,238 @@ msgstr ""
"BuÄ síť uuid %(network_uuid)s není přítomna nebo je pÅ™idÄ›lena projektu "
"%(project_id)s."
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr "Nelze najít odkazy datového úložiště, který VM používá."
-#: nova/exception.py:543
+#: nova/exception.py:554
#, fuzzy, python-format
msgid "Port %(port_id)s is still in use."
msgstr "Síť %(network_id)s nemohla být nalezena."
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Síť nemohla být pro instance %(instance_id)s nalezena."
-#: nova/exception.py:551
+#: nova/exception.py:562
#, fuzzy, python-format
msgid "No free port available for instance %(instance)s."
msgstr "Síť nemohla být pro instance %(instance_id)s nalezena."
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr "Žádná pevná IP není spojena s %(id)s."
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr "Pevná ip není pro adresu %(address)s nalezena."
-#: nova/exception.py:563
+#: nova/exception.py:574
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "Instance %(instance_id)s má nula pevných ip."
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr "Síťový hostitel %(host)s má nula pevných ip v síti %(network_id)s."
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "Instance %(instance_id)s nemá pevnou ip '%(ip)s'."
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr "Pevná IP adresa (%(address)s) v síti (%(network_uuid)s) neexistuje."
-#: nova/exception.py:581
+#: nova/exception.py:592
#, fuzzy, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr "Pevná IP adresa (%(address)s) je již používána."
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr "Pevná IP adresa (%(address)s) je neplatná."
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr "Je dostupno nula pevných ip."
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr "Bylo nalezeno nula pevných ip."
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "Plovoucí ip %(address)s je přidružena."
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr "Plovoucí ip není nalezena pro id %(id)s."
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr "Záznam DNS %(name)s již v doméně %(domain)s existuje."
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr "Plovoucí ip nenalezeno pro adresu %(address)s."
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr "Plovoucí ip nenalezeno pro hostitele %(host)s."
-#: nova/exception.py:628
+#: nova/exception.py:639
#, fuzzy, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr "Plovoucí ip nenalezeno pro adresu %(address)s."
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "Nenalezeny žádné plovoucí ip"
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr "Je dostupných nula plovoucích ip."
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr "Plovoucí ip %(address)s je přidružena."
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr "Plovoucí ip %(address)s není přidružena."
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr "Existuje nula plovoucích ip."
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr "Rozhraní %(interface)s nenalezeno."
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr "Dvojice klíÄů %(name)s nenalezena pro uživatele %(user_id)s"
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr "Certifikát %(certificate_id)s nenalezen."
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "Služba %(service_id)s nemohla být nalezena."
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr "Hostitel %(host)s nemohl být nalezen."
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr "Hostitel výpoÄtu %(host)s nemohl být nalezen."
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr "Nelze najít binární soubor %(binary)s v hostiteli %(host)s."
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr "Kvóta nemohla být nalezena."
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr "Kvóta pro projekt %(project_id)s nemohla být nalezena."
-#: nova/exception.py:707
+#: nova/exception.py:718
#, fuzzy, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr "Třída %(class_name)s nemohla být nalezena: %(exception)s"
-#: nova/exception.py:711
+#: nova/exception.py:722
#, fuzzy, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr "Kvóta pro projekt %(project_id)s nemohla být nalezena."
-#: nova/exception.py:715
+#: nova/exception.py:726
#, fuzzy, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr "Uživatel %(user_id)s nemohl být nalezen."
-#: nova/exception.py:719
+#: nova/exception.py:730
#, fuzzy, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr "Rozšířený zdroj: %s"
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr "BezpeÄnostní skupina %(security_group_id)s není nalezena."
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
"BezpeÄnostní skupina %(security_group_id)s není nalezena v projektu "
"%(project_id)s."
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr "BezpeÄnostní skupina s pravidlem %(rule_id)s nenalezena."
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
@@ -782,7 +792,7 @@ msgstr ""
"BezpeÄnostní skupina %(security_group_id)s je již pÅ™idružena k instanci "
"%(instance_id)s"
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
@@ -791,37 +801,37 @@ msgstr ""
"BezpeÄnostní skupina %(security_group_id)s není pÅ™idružena k instanci "
"%(instance_id)s"
-#: nova/exception.py:746
+#: nova/exception.py:757
#, fuzzy, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr "BezpeÄnostní skupina s pravidlem %(rule_id)s nenalezena."
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr "Přesun %(migration_id)s nemohl být nalezen."
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr "Přesun nenalezen v instanci %(instance_id)s se stavem %(status)s."
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr "Zásoba konzole %(pool_id)s nemohla být nalezena."
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
@@ -830,17 +840,17 @@ msgstr ""
"Zásoba konzole typu %(console_type)s pro výpoÄetního hostitele "
"%(compute_host)s v hostitele proxy %(host)s nemohla být nalezena."
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr "Konzole %(console_id)s nemohla být nalezena."
-#: nova/exception.py:783
+#: nova/exception.py:794
#, fuzzy, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "Konzole pro instanci %(instance_id)s nemohla být nalezena."
-#: nova/exception.py:787
+#: nova/exception.py:798
#, fuzzy, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
@@ -849,88 +859,88 @@ msgstr ""
"Konzole pro instanci %(instance_id)s v zásobě %(pool_id)s nemohla být "
"nalezena."
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "Neplatná konzole typu %(console_type)s "
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr "Instance typu %(instance_type_id)s nemohla být nalezena."
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr "Instance typu s názvem %(instance_type_name)s nemohla být nalezena."
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr "Konfigurace %(flavor_id)s nemohla být nalezena."
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "skupina svazku %s neexistuje"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
#, fuzzy
msgid "Timeout waiting for response from cell"
msgstr "PÅ™i Äekání na odpovÄ›Ä RPC vyprÅ¡el Äas: %s"
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "Svazek není nalezen v instanci %(instance_id)s."
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr "Filtr hostitelů plánovaÄe %(filter_name)s nemohl být nalezen."
-#: nova/exception.py:850
+#: nova/exception.py:861
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr "Instance %(instance_id)s nemá žádná metadata s klíÄem %(metadata_key)s."
-#: nova/exception.py:855
+#: nova/exception.py:866
#, fuzzy, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr "Instance %(instance_id)s nemá žádná metadata s klíÄem %(metadata_key)s."
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
@@ -939,406 +949,454 @@ msgstr ""
"Instance typu %(instance_type_id)s nemá žádné dodateÄné specifikace s "
"klíÄem %(extra_specs_key)s."
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr "Soubor %(file_path)s nemohl být nalezen."
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr "Nalezeno nula souborů."
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr "Nenalezen virtuální pÅ™epínaÄ sdružený se síťovým adaptérem %(adapter)s."
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr "Síťový adaptér %(adapter)s nemohl být nalezen."
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr "Třída %(class_name)s nemohla být nalezena: %(exception)s"
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr "Činnost není povolena."
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr "Střídání není povoleno pro snímky"
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr "Parametr rotation je vyžadován pro backup image_type"
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
msgstr "Dvojice klíÄů %(key_name)s již existuje."
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr "Instance %(name)s již existuje."
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "Instance typu %(name)s již existuje."
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "Instance typu %(name)s již existuje."
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, fuzzy, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr "%(path)s je ve sdíleném úložišti: %(reason)s"
-#: nova/exception.py:923
+#: nova/exception.py:934
#, fuzzy, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr "%(path)s je ve sdíleném úložišti: %(reason)s"
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr "Chyba přesunu"
-#: nova/exception.py:931
+#: nova/exception.py:942
#, fuzzy
msgid "Migration pre-check error"
msgstr "Chyba přesunu"
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr "Poškozené tělo zprávy: %(reason)s"
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr "Nelze najít nastavení v %(path)s"
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr "Nelze naÄíst aplikaci vložení '%(name)s' z %(path)s"
-#: nova/exception.py:949
+#: nova/exception.py:960
#, fuzzy
msgid "When resizing, instances must change flavor!"
msgstr "Při změně velikosti ji musí instance změnit také!"
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr "Obraz je větší než typ instance povoluje"
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr "Typ paměti instance je pro požadovaný obraz příliš malý."
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr "Typ disku instance je pro požadovaný obraz příliš malý."
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr "Pro spuÅ¡tÄ›ní %(uuid)s je v uzlu výpoÄtu nedostatek volné pamÄ›ti."
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr "Nelze získat metriky šířky pásma/procesoru/disku pro tohoto hostitele."
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr "Nebyl nalezen žádný platný hostitel. %(reason)s"
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr "Kvóta pÅ™ekroÄena"
-#: nova/exception.py:988
+#: nova/exception.py:995
#, fuzzy, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr "PÅ™ekroÄena kvóta pro %(pid)s, pokus o spuÅ¡tÄ›ní %(min_count)s instancí"
-#: nova/exception.py:993
+#: nova/exception.py:1000
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "Vybrán maximální poÄet hostitelů (%d)"
-#: nova/exception.py:997
+#: nova/exception.py:1004
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Vybrán maximální poÄet hostitelů (%d)"
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, fuzzy, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr "Vybrán maximální poÄet hostitelů (%d)"
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr "PÅ™ekroÄen limit osobnostního souboru"
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr "Cesta osobnostního souboru je příliš dlouhá"
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr "Obsah osobnostního souboru je příliš dlouhý"
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
#, fuzzy
msgid "Maximum number of key pairs exceeded"
msgstr "Vybrán maximální poÄet hostitelů (%d)"
-#: nova/exception.py:1021
+#: nova/exception.py:1028
#, fuzzy
msgid "Maximum number of security groups or rules exceeded"
msgstr "Vybrán maximální poÄet hostitelů (%d)"
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, fuzzy, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr "Agregát %(aggregate_id)s nemá hostitele %(host)s."
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr "Agregát %(aggregate_id)s nemohl být nalezen."
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "Agregát %(aggregate_name)s již existuje."
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr "Agregát %(aggregate_id)s nemá hostitele %(host)s."
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr "Agregát %(aggregate_id)s nemá žádná metadata s klíÄem %(metadata_key)s."
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr "Agregát %(aggregate_id)s již má hostitele %(host)s."
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr "Nelze vytvořit typ instance"
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, fuzzy, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr "Nelze nastavit heslo správce. Instance %s není spuštěna"
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, fuzzy, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr "Zjišťěna existující vlan s id %(vlan)"
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "Instance %(instance_id)s nemohla být nastavena."
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "Konzole pro instanci %(instance_id)s nemohla být nalezena."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Svazek %(volume_id)s nemohl být nastaven."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "Snímek %(snapshot_id)s nemohl být nalezen."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "Obraz %(image_id)s nemohl být nalezen."
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "Získávání obrazu %(image)s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "Získávání obrazu %(image)s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, fuzzy, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr "Plovoucí ip nenalezeno pro hostitele %(host)s."
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "Instance %(instance_id)s nenalezena"
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Navrácení sítě pro instnac"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Navrácení sítě pro instnac"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "Připojit svazek %(volume_id)s k instanci %(instance_id)s na %(device)s"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, fuzzy, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr "Dvojice klíÄů %(name)s nenalezena pro uživatele %(user_id)s"
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, fuzzy, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "Kvóta pro projekt %(project_id)s nemohla být nalezena."
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, fuzzy, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "Projekt %(project_id)s nemohl být nalezen."
-#: nova/exception.py:1170
+#: nova/exception.py:1177
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "set_admin_password není tímto ovladaÄem zavedeno"
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "Instance %(instance_id)s není v nouzovém režimu."
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "Instance %(instance_id)s není v nouzovém režimu."
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "Instance typu %(name)s již existuje."
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
+#: nova/exception.py:1225
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "OÄekáván objekt typu: %s"
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1349,7 +1407,7 @@ msgstr ""
msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/manager.py:166
+#: nova/manager.py:172
msgid "Notifying Schedulers of capabilities ..."
msgstr "Oznamování schopností plánovaÄům ..."
@@ -1370,167 +1428,105 @@ msgstr "Soubor JSON představující zásady"
msgid "Rule checked when requested rule is not found"
msgstr "Kontrolované pravidlo, když požadované není nalezeno"
-#: nova/quota.py:966
+#: nova/quota.py:972
#, python-format
msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/quota.py:994
#, python-format
msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:990
+#: nova/quota.py:996
#, python-format
msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:1010
+#: nova/quota.py:1016
#, python-format
msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:1012
+#: nova/quota.py:1018
#, python-format
msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Úplná sada PŘÃZNAKÅ®:"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr "%(flag)s : SADA PŽÃZNAKÅ® "
-
-#: nova/service.py:214 nova/service.py:312
-#, fuzzy, python-format
-msgid "Caught %s, exiting"
-msgstr "snímek %s: mazání"
-
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
-msgstr ""
-
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
-msgstr ""
-
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
-
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
-msgstr ""
-
-#: nova/service.py:334
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "poÄáteÄní adresa"
-
-#: nova/service.py:348
-#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
-msgstr ""
-
-#: nova/service.py:351
-#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
-msgstr ""
-
-#: nova/service.py:354
-#, python-format
-msgid "pid %d not in child list"
-msgstr ""
-
-#: nova/service.py:374
-#, python-format
-msgid "Caught %s, stopping children"
-msgstr ""
-
-#: nova/service.py:385
-#, python-format
-msgid "Waiting on %d children to exit"
-msgstr ""
-
-#: nova/service.py:427
+#: nova/service.py:152
#, fuzzy, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr "ZaÄínající uzel %(topic)s (verze %(vcs_string)s)"
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr "Vytváření připojení zákazníka pro službu %s"
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "UkonÄena služba bez záznamu v databázi"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "ladění ve zpětném volání: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Adresa místního spojení nenalezena.: %s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "Nelze získat IP místního spojení %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "Neplatná podpůrná vrstva: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "Neznámý základní soubor: %s"
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr "OÄekáván objekt typu: %s"
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr "Neplatný server_string: %s"
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc: '%(name)s' trvalo %(total_time).2f sek"
-#: nova/utils.py:799
+#: nova/utils.py:797
#, fuzzy, python-format
msgid "Reloading cached file %s"
msgstr "Odstraňování základního souboru: %s"
@@ -1540,17 +1536,17 @@ msgstr "Odstraňování základního souboru: %s"
msgid "Could not remove tmpdir: %s"
msgstr "Nelze odstranit kontejner: %s"
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "Název serveru není řetězec nebo unicode"
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, fuzzy, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr "Dvojice klíÄů musí být dlouhá 1 až 255 znaků."
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1756,7 +1752,7 @@ msgstr "Prostředí: %s"
msgid "An unknown error has occurred. Please try your request again."
msgstr "Vyskytla se neznámá chyba. Prosím zopakujte Váš požadavek."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1780,6 +1776,7 @@ msgstr "VytvoÅ™it dvojici klíÄů %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1857,179 +1854,179 @@ msgid "Detach Volume Failed."
msgstr "Odpojit svazek %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "vlastnost není podporována: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr "svz = %s\n"
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Přidělit adresu"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
#, fuzzy
msgid "No more floating IPs available"
msgstr "Žádné další plovoucí ip nejsou dostupné."
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Uvolnit adresu %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
#, fuzzy
msgid "Unable to release IP Address."
msgstr "Nelze najít adresu %r"
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "Přidělit adresu %(public_ip)s k instanci %(instance_id)s"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Nelze najít adresu %r"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, fuzzy, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr "existuje mnoho pevných ip, použita je první: %s"
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
#, fuzzy
msgid "Floating ip is already associated."
msgstr "Plovoucí ip %(address)s je přidružena."
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
#, fuzzy
msgid "l3driver call to add floating ip failed."
msgstr "Je dostupných nula plovoucích ip."
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Nelze najít adresu %r"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Oddělit adresu %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
#, fuzzy
msgid "Floating ip is not associated."
msgstr "Plovoucí ip %(address)s není přidružena."
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr "Obraz musí být dostupný"
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "BUde spuÅ¡tÄ›no ukonÄování insatncí"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Restratovat instanci %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr "Instance budou zastaveny"
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr "Instance budou spuštěny"
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "Zrušení registrace obrazu %s"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "Obraz %(image_location)s registrován s id %(image_id)s"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "uživatel nebo skupina nebyly zadány"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "podporována je pouze skupina \"all\""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "operation_type musí být add nebo remove"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "Aktualizace publicity obrazu %s"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "Nelze zastavit instanci za %d sek"
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
#, fuzzy
msgid "Expecting a list of resources"
msgstr "Získávání seznamu instancí"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "instance - %s není přítomno"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "Získávání seznamu instancí"
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
#, fuzzy
msgid "Invalid CIDR"
msgstr "Neplatná data jednotky"
@@ -2081,37 +2078,77 @@ msgstr "Neplatný požadavek: %s"
msgid "Failed to get metadata for instance id: %s"
msgstr "Nelze získat metadata pro ip: %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Zachycena chyba: %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr "%(url)s vrácena s HTTP %(status)d"
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr "Musí být urÄena třída ExtensionManager"
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr "Rozšířený zdroj: %s"
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr "Rozšíření %(ext_name)s: nelze rozšířit %(collection)s: Žádný takový zdroj"
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr "Rozšíření %(ext_name)s: rozšiřování zdroje %(collection)s"
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, fuzzy, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr "Volání továrny rozšíření %s"
+
+#: nova/api/openstack/__init__.py:287
+#, fuzzy, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr "NaÄítání rozšíření %s"
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "NaÄítání rozšíření %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2136,6 +2173,7 @@ msgid "offset param must be positive"
msgstr "parametr offset musí být kladný"
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr "znaÄka [%s] nenalezena"
@@ -2186,21 +2224,25 @@ msgid "Loaded extension: %s"
msgstr "NaÄteno rozšíření: %s"
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr "Název roz: %s"
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr "Přezdívká roz: %s"
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr "Popis roz: %s"
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr "Jmenný prostor roz: %s"
@@ -2211,6 +2253,7 @@ msgid "Ext updated: %s"
msgstr "Roz aktualizováno: %s"
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr "Výjimka pÅ™i naÄítání rozšíření: %s"
@@ -2230,12 +2273,12 @@ msgstr "Volání továrny rozšíření %s"
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "Nelze naÄít rozšížení %(ext_factory)s: %(exc)s"
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr "Nelze naÄíst rozšíření %(classpath)s: %(exc)s"
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, fuzzy, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr "Nelze naÄíst rozšíření %(ext_name)s: %(exc)s"
@@ -2280,7 +2323,7 @@ msgstr "V požadavku zadáno prázdné tělo"
msgid "There is no such action: %s"
msgstr "Žádná taková Äinnost: %s"
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2295,20 +2338,23 @@ msgstr "Poškozené tělo požadavku"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Volání pro získání %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Nepodporovaný Content-Type"
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
-msgstr "Poškozená url požadavku"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2382,10 +2428,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr "Instance neexistuje"
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr "Instance není Älenem zadané sítÄ›"
@@ -2414,227 +2462,302 @@ msgid "Metadata item was not found"
msgstr "Položka metadat nenalezena"
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr "Neplatná hodnota changes-since"
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Pokus o jemné smazání %s"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Hostitel %(host)s nemohl být nalezen."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr "Instance nemohla být nalezena"
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr "Špatný formát osobnosti: chybí %s"
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr "Špatný formát osobnosti"
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr "Obsah osobnosti pro %s nemůže být dekódován"
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
#, fuzzy
msgid "Unknown argment : port"
msgstr "neznámá chyby připojení hosta"
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, fuzzy, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr "Špatný formát sítí: uuid sítě není ve správném formátu (%s)"
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr "Špatný formát sítí: uuid sítě není ve správném formátu (%s)"
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "Neplatná pevná IP adresa (%s)"
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Duplicitní sítě (%s) nejosu povoleny"
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr "Špatný formát sítě: chybí %s"
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr "Špatný formát sítě"
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr "Obsah uživatelských dat nemůže být dekódován"
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr "accessIPv4 není ve správném formátu IPv4"
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
#, fuzzy
msgid "accessIPv6 is not proper IPv6 format"
msgstr "accessIPv4 není ve správném formátu IPv4"
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr "Název serveru není urÄen"
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr "Zadáno neplatné flavorRef."
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
#, fuzzy
msgid "min_count must be an integer value"
msgstr "parametr limit musí být celé Äíslo"
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
#, fuzzy
msgid "max_count must be an integer value"
msgstr "parametr limit musí být celé Äíslo"
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr "Nelze najít požadovaný obraz"
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr "Zadán neplatný název_klíÄe."
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "id nemůže být None"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "id nemůže být None"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr "Instanci nebyla změněna velikost."
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "Instance %(instance_id)s nemohla být nastavena."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr "Argument 'type' pro restart není HARD Äi SOFT"
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr "Chybí argument 'type' pro restart"
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr "Nelze najít požadovanou konfiguraci."
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
#, fuzzy
msgid "Resize requires a flavor change."
msgstr "Resize vyžaduje změnu velikosti."
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "Instance %(instance_id)s nemohla být nastavena."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "%s je platný název instance"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr "Chybí vlastnost imageRef"
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr "Zadáno neplatné imageRef."
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr "Chybí vlastnost flavorRef"
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr "Nebylo zadáno adminPass"
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr "Neplatné adminPass"
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Nelze restartovat instanci"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr "Nelze zpracovat metadata dvojic hodnot/klíÄů."
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "Požadavek na změnu velikosti má neplatnou vlastnost 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr "Požadavek na změnu velikosti vyžaduje vlastnost 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr "Neplatné tělo požadavku"
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr "Nelze zpracovat imageRef z požadavku."
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr "Nelze najít obraz ke znovu sestavení"
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr "Objekt createImage cyžaduje vlastnost name"
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, fuzzy, python-format
msgid "Removing options '%s' from query"
msgstr "Odstraňování voleb '%(unk_opt_str)s' z fronty"
@@ -2810,30 +2933,35 @@ msgstr "Spouštění rozhraní VLAN %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Pravidlo (%s) nenalezeno"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
#, fuzzy
msgid "Cell name cannot be empty"
msgstr "Název bezpeÄnostní skupiny nemůže být prázdné"
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
#, fuzzy
msgid "No cell information in request"
msgstr "block_device_mapping %s"
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2932,14 +3060,14 @@ msgstr "host a block_migration musí být zadány."
msgid "Error in evacuate, %s"
msgstr "Chyba v přesunu %s"
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Certifikát %(certificate_id)s nenalezen."
@@ -2990,7 +3118,7 @@ msgstr "Plovoucí ip %(address)s není přidružena."
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr "Chybí parametr dict"
@@ -3124,11 +3252,6 @@ msgstr "Nalezeno nula souborů."
msgid "Invalid timestamp for date %s"
msgstr "Neplatná metadata"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr "Dvojice klíÄů '%s' již existuje."
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr "Chybí argument 'networkId' pro addFixedIp"
@@ -3245,16 +3368,16 @@ msgstr "PÅ™idávání pravidla bezpeÄnostní skupiny: %r"
msgid "Create networks failed"
msgstr "Vytvoření selhalo"
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, fuzzy, python-format
msgid "Quota for %s should be integer."
msgstr "verze by mÄ›la být celé Äíslo"
@@ -3264,7 +3387,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr "Poškozená vlasnost scheduler_hints"
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "Není dostatek parametrů k sestavení platného pravidla."
@@ -3283,16 +3406,16 @@ msgstr "Zobrazování sítě s id %s"
msgid "security group default rule not found"
msgstr "BezpeÄnostní skupina s pravidlem %(rule_id)s nenalezena."
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, fuzzy, python-format
msgid "Bad prefix for network in cidr %s"
msgstr "Špatná předpona pro to_global_ipv6: %s"
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr "Není zadána bezpeÄnostní skupina"
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr "Název bezpeÄnostní skupiny nemůže být prázdné"
@@ -3306,12 +3429,12 @@ msgstr "zaÄátek instance %r"
msgid "stop instance"
msgstr "zastavit instanci %r"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "Neznámý řetěz: %r"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
#, fuzzy
msgid "Unknown service"
msgstr "neznámá chyby připojení hosta"
@@ -3361,16 +3484,45 @@ msgstr "Vytvořit snímek ze svazku %s"
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "NaÄteno rozšíření: %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, fuzzy, python-format
+msgid "Ext version: %i"
+msgstr "Popis roz: %s"
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Uvolnit adresu %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Uvolnit adresu %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, fuzzy, python-format
+msgid "Running _create_extension_point for %s"
+msgstr "Volání továrny rozšíření %s"
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3380,124 +3532,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "pro zprávu není metoda: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, fuzzy, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr "Nelze naÄít rozšížení %(ext_factory)s: %(exc)s"
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "pro zprávu není metoda: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, fuzzy, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr "Odstraňování základního souboru: %s"
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, fuzzy, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr "Obsazena '%(method)s' do '%(host)s' výpoÄtu"
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "Přesun nenalezen v instanci %(instance_id)s se stavem %(status)s."
+msgid "Got update for instance: %(instance)s"
+msgstr "Svazek není nalezen v instanci %(instance_id)s."
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Svazek není nalezen v instanci %(instance_id)s."
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "Svazek není nalezen v instanci %(instance_id)s."
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3899,26 +4084,36 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
#, fuzzy
msgid "Cannot run any more instances of this type."
msgstr "PÅ™ekroÄena kvóta instancí. Nemůžete spustit další instance tohoto typu."
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
"PÅ™ekroÄena kvóta instancí. Můžete spustit pouze %s dalších instancí "
"tohoto typu."
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, fuzzy, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr "PÅ™ekroÄena kvóta pro %(pid)s, pokus o spuÅ¡tÄ›ní %(min_count)s instancí"
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
@@ -3927,99 +4122,99 @@ msgstr ""
"PÅ™ekroÄena kvóta pro %(pid)s, pokus o nastavení %(num_metadata)s "
"vlastností metadat"
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
#, fuzzy
msgid "Metadata property key greater than 255 characters"
msgstr "BezpeÄnostní skupina %s by nemÄ›la být vÄ›tší než 255 znaků."
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
#, fuzzy
msgid "Metadata property value greater than 255 characters"
msgstr "BezpeÄnostní skupina %s by nemÄ›la být vÄ›tší než 255 znaků."
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Nelze připojit svazek k instanci %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Chystá se spuštění %s instancí..."
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "BUde spuÅ¡tÄ›no ukonÄování insatncí"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "Instance typu %(instance_type_id)s nemohla být nalezena."
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "BUde spuÅ¡tÄ›no ukonÄování insatncí"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, fuzzy, python-format
msgid "instance's host %s is down, deleting from database"
msgstr "Žádný hostitel pro instnaci %s, okamžitě smazána"
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Pokus o jemné smazání %s"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Pokus o ukonÄení %s"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Pokus o zastavení %s"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "Pokus o spuštění %s"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr "Hledání podle: %s"
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Spouštění snímku ve VM %s"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr "flavor_id je None. Předpokládán přesun."
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -4028,62 +4223,63 @@ msgstr ""
"Stará instance typu %(current_instance_type_name)s, nová instance typu "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, fuzzy, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr "PÅ™ekroÄena kvóta pro %(pid)s, pokus o spuÅ¡tÄ›ní %(min_count)s instancí"
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Pokus o ukonÄení %s"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr "Dvojice klíÄů musí být dlouhá 1 až 255 znaků."
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr "BezpeÄnostní skupina %s není Å™etÄ›zec nebo unicode"
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr "BezpeÄnostní skupina %s nemůže být prázdná."
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, fuzzy, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
@@ -4092,65 +4288,70 @@ msgstr ""
"Hodnota (%s) parametru GroupName je neplatná. Délka pÅ™ekraÄuje maximum "
"255 znaků."
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr "BezpeÄnostní skupina %s by nemÄ›la být vÄ›tší než 255 znaků."
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "VytvoÅ™it bezpeÄnostní skupinu %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr "BezpeÄnostní skupina %s již existuje"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Nelze zniÄit vbd %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Nelze zniÄit vbd %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "Id bezpeÄnostní skupiny by mÄ›lo být celé Äíslo"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Smazat bezpeÄnostní skupinu %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr "Pravidlo (%s) nenalezeno"
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
#, fuzzy
msgid "Quota exceeded, too many security group rules."
msgstr "PÅ™idávání pravidla bezpeÄnostní skupiny: %r"
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Povolit přístup bezpeÄnostní skupiny %s"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "ZruÅ¡it přístup bezpeÄnostní skupiny %s"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr "Id bezpeÄnostní skupiny by mÄ›lo být celé Äíslo"
@@ -4255,19 +4456,19 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
@@ -4276,247 +4477,234 @@ msgstr ""
"Nelze pÅ™esunout instanci (%(instance_id)s) na souÄasného hostitele "
"(%(host)s)."
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Nelze restartovat instanci"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr "SouÄasný stav je %(drv_state)s, stav v DB je %(db_state)s."
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr "Restartování instance po restartu nova-compute."
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
#, fuzzy
msgid "Hypervisor driver does not support resume guests"
msgstr "OvladaÄ hypervizoru nepodporuje pravidla firewallu"
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Nelze pozastavit instanci"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "OvladaÄ hypervizoru nepodporuje pravidla firewallu"
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "NeoÄekávaný kód stavu"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "Kontrola stavu"
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr "Nastavování bdm %s"
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Navrácení sítě pro instnac"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "Instance nemohla být spuštěna"
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Chyba DB: %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-"ID obrázku=%(image_id)s, velkost obrázku v bajtech=%(size_bytes)d, "
-"povoleno bajtů=%(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-"Velikost %(size_bytes)d obrázku '%(image_id)s' pÅ™ekroÄila povolenou "
-"velkost %(allowed_size_bytes)d pro typ instance"
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "Spouštění instance..."
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "Nenalezeny žádné plovoucí ip"
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr "Instance selhala v nastavení sítě"
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "Informace o síti instance: |%s|"
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "Instance selhala nastavení blokového zařízení"
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "Instance nemohla být spuštěna"
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "Navrácení sítě pro instnac"
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s nstance"
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Navrácení sítě pro instnac"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr "%(action_str)s nstance"
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr "Ignorování DiskNenalezen: %s"
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, fuzzy, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "Ignorování DiskNenalezen: %s"
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "ukonÄování bdm %s"
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s. Nastavování stavu vm instance na ERROR"
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Znovu sestavování instance %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, fuzzy, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr "%(path)s je ve sdíleném úložišti: %(reason)s"
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Vytvořit snímek ze svazku %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Restartování instance %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, fuzzy, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
@@ -4525,22 +4713,22 @@ msgstr ""
"pokus o restartování nespuštěné instance: %(instance_uuid)s (stav: "
"%(state)s oÄekáváno: %(running)s)"
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Nelze znovu sestavit instanci [%(instance_uuid)s]: %(exc)s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: znovu zavedena"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: pořizování snímku"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, fuzzy, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
@@ -4549,47 +4737,47 @@ msgstr ""
"pokus o vytvoření snímku z nespuštěné instance: %(instance_uuid)s (stav: "
"%(state)s oÄekáváno: %(running)s)"
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "Nalezeno %(num_images)d obrazů (střídání: %(rotation)d)"
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr "Střídání %d záloh"
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr "Mazání obrazu %s"
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr "Nelze nastavit heslo správce. Instance %s není spuštěna"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
#, fuzzy
msgid "Root password set"
msgstr "Instance %s: Nastavení hesla root"
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
#, fuzzy
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr "set_admin_password není tímto ovladaÄem zavedeno"
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, fuzzy, python-format
msgid "set_admin_password failed: %s"
msgstr "set_admin_password není tímto ovladaÄem zavedeno"
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
#, fuzzy
msgid "error setting admin password"
msgstr "Chyba při nastavování hesla správce"
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, fuzzy, python-format
msgid ""
"trying to inject a file into a non-running (state: "
@@ -4598,179 +4786,184 @@ msgstr ""
"pokus o vsunutí souboru do nespuštěné instance: %(instance_uuid)s (stav: "
"%(current_power_state)s oÄekáváno: %(expected_state)s)"
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "Vkládání cesty souboru: '%s'"
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Nelze pozastavit instanci"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Chyba DB: %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
#, fuzzy
msgid "Unrescuing"
msgstr "instance %s: rušení záchrany"
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Nastavování instance %(instance_uuid)s do stavu ERROR"
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "Instance nemá svazek."
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr "cíl stejný jako zdroj!"
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
#, fuzzy
msgid "Pausing"
msgstr "Aktualizování!"
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: získávání diagnostik"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "Reset sítě"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
#, fuzzy
msgid "Inject network info"
msgstr "instance %s: vkládání informací o síti"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr "network_info vkládá: |%s|"
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Získat výstup konzole pro instanci %s"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
#, fuzzy
msgid "Getting vnc console"
msgstr "instance %s: získávání konzole vnc"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "instance %s: získávání konzole vnc"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr "Zavádění pomocí svazku %(volume_id)s ve %(mountpoint)s"
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr "Připojování svazku %(volume_id)s do %(mountpoint)s"
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, fuzzy, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr "Zavádění pomocí svazku %(volume_id)s ve %(mountpoint)s"
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Připojování svazku %(volume_id)s do %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr "Odpojování svazku %(volume_id)s z bodu připojení %(mp)s"
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Odpojování svazku z neznámé instance %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Připojování svazku %(volume_id)s do %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, fuzzy, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr "přidělování sítě pro instanci %s"
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Síť %(network_id)s nemohla být nalezena."
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Hostitel %(host)s nemohl být nalezen."
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr "Přesun před spuštěním selhal na %(dest)s"
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
#, fuzzy
msgid "_post_live_migration() is started.."
msgstr "zahájen přesun po spuštění."
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr "PÅ™esun instance do %(dest)s úspěšnÄ› dokonÄen."
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4778,21 +4971,21 @@ msgstr ""
"Můžete vidět tuto chybu \"libvirt: QEMU error: Domain not found: no "
"domain with matching name.\" Tuto chybu můžete bezpeÄnÄ› ignorovat."
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
#, fuzzy
msgid "Post operation of migration started"
msgstr "Spuštěna operace po migraci"
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Nelze získat metadata pro ip: %s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
@@ -4801,64 +4994,64 @@ msgstr ""
"Nalezeno %(migration_count)d nepotvrzených přesunů starších než "
"%(confirm_window)d vteřin"
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, fuzzy, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr "Vypínání VM pro instanci %(instance_uuid)s"
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "Instance %(instance_id)s nenalezena"
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
#, fuzzy
msgid "In ERROR state"
msgstr "Uzel je v neznámém chybovém stavu."
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr "Aktualizace mezipaměti využití šířky pásma"
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Aktualizace mezipaměti využití šířky pásma"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr "Aktualizace stavu hostitele"
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4867,67 +5060,67 @@ msgstr ""
"Nalezeno %(num_db_instances)s v databázi a %(num_vm_instances)s na "
"hypervizoru."
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "Instance není zapnuta"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0, překskování..."
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr "Znovu získávání smazané instance"
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Zaznamování ovladaÄe svazku: %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, fuzzy, python-format
msgid "No service record for host %s"
msgstr "Žádná služba pro ID výpoÄtu %s"
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, fuzzy, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
@@ -4936,7 +5129,7 @@ msgstr ""
"ZjiÅ¡tÄ›na instance se jmenovkou '%(name_label)s', která je oznaÄena jako "
"SMAZÃNA, ale stále je přítomna na hostiteli."
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, fuzzy, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
@@ -4945,14 +5138,14 @@ msgstr ""
"NiÄení instance se jmenovkou '%(name_label)s', která je oznaÄena jako "
"SMAZÃNA, ale stále je přítomna na hostiteli."
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, fuzzy, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
"Nerozpoznaná hodnota '%(action)s' pro "
"FLAGS.running_deleted_instance_action"
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "Nastavování instance %(instance_uuid)s do stavu ERROR"
@@ -5068,18 +5261,18 @@ msgstr "Nelze najít hostitele pro instanci %s"
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5160,56 +5353,72 @@ msgstr "Kontrola známky: %(token)s, %(token_valid)s)"
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Nelze restartovat instanci"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Nelze restartovat instanci"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr "Nerozpoznaná hodnota read_deleted '%s'"
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "instance %s: zachráněna"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "instance %s: zachráněna"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "instance %s: zachráněna"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "instance %s: zachráněna"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "instance %s: zachráněna"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5226,56 +5435,61 @@ msgstr "verze by mÄ›la být celé Äíslo"
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+#, fuzzy
+msgid "Unsupported id columns type"
+msgstr "Nepodporovaný Content-Type"
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5312,32 +5526,37 @@ msgstr "Nelze stáhnout %(image_location)s do %(image_path)s"
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr "Nelze dešifrovat %(image_location)s do %(image_path)s"
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr "Nelze rozbalit %(image_location)s do %(image_path)s"
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr "Nelze nahrát %(image_location)s do %(image_path)s"
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "Nelze deÅ¡ifrovat soukromý klíÄ: %s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "Nelze dešifrovat vektor zavedení: %s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "Nelze dešifrovat soubor obrazu %(image_file)s: %(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr "NebezpeÄné názvy souboru v obrazu"
@@ -5356,16 +5575,20 @@ msgstr "Špatná předpona pro to_global_ipv6: %s"
msgid "Bad project_id for to_global_ipv6: %s"
msgstr "Špatné id projektu pro to_global_ipv6: %s"
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Nelze restartovat instanci"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, fuzzy, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "Přidělit adresu %(public_ip)s k instanci %(instance_id)s"
@@ -5520,67 +5743,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d je starý, znovu spouštění dnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq vrhl výjimku %s"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d je starý, znovu spouštění dnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "ukonÄení radvd vrhlo %s"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d je starý, znovu spouštění radvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Neplatný stav: '%s'"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Spouštění rozhraní VLAN %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Zajišťování mostu %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, fuzzy, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr "Zajišťování vlan %(vlan)s a mostu %(bridge)s"
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Nelze pozastavit instanci"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Zajišťování mostu %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Zajišťování mostu %s"
@@ -5754,80 +5977,80 @@ msgstr "_smazat: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr "podsítě v4 jsou vyžadovány pro zastaralé nw_info"
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
-msgstr ""
+#: nova/network/quantumv2/__init__.py:67
+#, fuzzy
+msgid "quantum authentication failed"
+msgstr "Chyba ověření"
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, fuzzy, python-format
msgid "allocate_for_instance() for %s"
msgstr "přidělování sítě pro instanci %s"
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "přidělování sítě pro instanci %s"
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Hostitel nenalezen"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, fuzzy, python-format
msgid "deallocate_for_instance() for %s"
msgstr "oddělení sítě pro instanci |%s|"
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, fuzzy, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr "Nelze smazat svazek v db"
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, fuzzy, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr "Nelze smazat svazek v db"
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, fuzzy, python-format
msgid "get_instance_nw_info() for %s"
msgstr "Informace o síti instance: |%s|"
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, fuzzy, python-format
msgid "validate_networks() for %s"
msgstr "Špatný formát sítě"
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "Plovoucí ip není nalezena pro id %(id)s."
@@ -5837,70 +6060,75 @@ msgstr "Plovoucí ip není nalezena pro id %(id)s."
msgid "Quantum Error creating security group %s"
msgstr "Smazat bezpeÄnostní skupinu %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Smazat bezpeÄnostní skupinu %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Smazat bezpeÄnostní skupinu %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Zachycena chyba: %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Smazat bezpeÄnostní skupinu %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Id bezpeÄnostní skupiny by mÄ›lo být celé Äíslo"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Smazat bezpeÄnostní skupinu %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Zachycena chyba: %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "BezpeÄnostní skupina s pravidlem %(rule_id)s nenalezena."
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, fuzzy, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
"BezpeÄnostní skupina %(security_group_id)s není nalezena v projektu "
"%(project_id)s."
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5914,6 +6142,26 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Toto pravidlo již existuje ve skupině %s"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "Chyba při nastavování hesla správce"
+
+#: nova/objects/base.py:145
+#, fuzzy
+msgid "Invalid version string"
+msgstr "Neplatný server_string: %s"
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, fuzzy, python-format
msgid "Original exception being dropped: %s"
@@ -5949,17 +6197,17 @@ msgstr "Získán zámek souboru \"%(lock)s\" pro zámek metody \"%(method)s\""
msgid "Deprecated: %s"
msgstr "NeoÄekávaná chyba: %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr "zařízení záznamu systému musí být jedno z: %s"
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, fuzzy, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr "Třída %(fullname)s je zastaralá: %(msg)s"
@@ -6058,21 +6306,78 @@ msgstr "Prostředí není podporováno přes SSH"
msgid "process_input not supported over SSH"
msgstr "process_input není podporován přes SSH"
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Úplná sada PŘÃZNAKÅ®:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, fuzzy, python-format
+msgid "Caught %s, exiting"
+msgstr "snímek %s: mazání"
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, fuzzy, python-format
+msgid "Starting %d workers"
+msgstr "poÄáteÄní adresa"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr "Vyjímka DB zabalena."
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, fuzzy, python-format
msgid "SQL connection failed. %s attempts left."
msgstr "Připojení SQL selhalo (%(connstring)s). Zbývá %(attempts)d pokusů."
@@ -6249,18 +6554,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, fuzzy, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr "Nelze odstranit %(base_file)s, chyba byla %(error)s"
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "Volajícímu je vrácena výjimka: %s"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6293,44 +6603,44 @@ msgstr ""
" pokus za %(sleep_time)d vteřin."
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr "Nelze deklarovat spotřebitele pro téma '%(topic)s': %(err_str)s"
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr "PÅ™i Äekání na odpovÄ›Ä RPC vyprÅ¡el Äas: %s"
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr "Nelze spotřebovat zprávu z fronty: %s"
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr "Nelze vydat zprávu do tématu '%(topic)s': %(err_str)s"
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, fuzzy, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr "Nelze se připojit k serveru AMQP: %s "
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr "Připojeno k serveru AMQP na %s"
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr "Znovu obnoveny fronty AMQP"
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6601,38 +6911,38 @@ msgstr "Pokus o sestavení %(num_instances)d instancí"
msgid "Request Spec: %s"
msgstr "Požadavek: %s"
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Svazek není nalezen v instanci %(instance_id)s."
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "Filtrováno %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, fuzzy, python-format
msgid "Weighed %(hosts)s"
msgstr "Filtrováno %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6706,10 +7016,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6717,6 +7034,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6752,14 +7074,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6829,47 +7151,47 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Obnoveno připojení modelového serveru!"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "modelový server je nedostupný"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
#, fuzzy
msgid "memcached_servers not defined"
msgstr "Název serveru není urÄen"
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6908,12 +7230,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6958,46 +7280,6 @@ msgstr ""
msgid "already detached"
msgstr "již odpojeno"
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr "Prosím rozšiřte nepravý modul libvirt aby podporoval příznaky"
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "znaÄka [%s] nenalezena"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-"Následujícím přesunům chybí snížení na nižší verzi:\n"
-"\t%s"
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr "Vytváření souborů v %s pro simulaci agenta hosta"
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr "Odstraňování souborů simulovaného agenta hosta v %s"
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -7010,18 +7292,21 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
#, fuzzy
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr "PÅ™ekroÄena kvóta pro %(pid)s, pokus o spuÅ¡tÄ›ní %(min_count)s instancí"
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -7030,7 +7315,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "Spouštění instancí: %s"
@@ -7047,26 +7332,35 @@ msgstr "Po ukonÄení instancí: %s"
msgid "Internal error"
msgstr "Vnitřní chyba"
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr "Po vynuceném ukonÄení instancí: %s"
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
#, fuzzy
msgid "spawn error"
msgstr "neznámá chyby připojení hosta"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+"Následujícím přesunům chybí snížení na nižší verzi:\n"
+"\t%s"
+
+#: nova/tests/integrated/test_api_samples.py:181
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr "Adresa |%(address)s| není přidělena"
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -7076,22 +7370,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr "Adresa |%(address)s| není přidělena"
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -7156,31 +7450,70 @@ msgstr "NeoÄekávaný kód stavu"
msgid "Decoding JSON: %s"
msgstr "Dekódování JSON: %s"
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "znaÄka [%s] nenalezena"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr "Prosím rozšiřte nepravý modul libvirt aby podporoval příznaky"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr "Vytváření souborů v %s pro simulaci agenta hosta"
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr "Odstraňování souborů simulovaného agenta hosta v %s"
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, fuzzy, python-format
msgid "Loading compute driver '%s'"
msgstr "Zaznamování ovladaÄe svazku: %s"
-#: nova/virt/driver.py:962
-#, fuzzy, python-format
+#: nova/virt/driver.py:980
+#, fuzzy
msgid "Unable to load the virtualization driver"
msgstr "Nelze naÄíst ovladaÄ virtualizace: %s"
@@ -7337,22 +7670,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Přidělení plovoucí IP pro |%s|"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Stahování obrazu %s ze serveru obrazu glance"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Vkládání %(injection)s do obrazu %(img_id)s"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7372,7 +7705,7 @@ msgstr "Získat výstup konzole pro instanci %s"
msgid "PXE deploy failed for instance %s"
msgstr "přidělování sítě pro instanci %s"
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7382,28 +7715,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr "PÅ™i Äekání na odpovÄ›Ä RPC vyprÅ¡el Äasový limit."
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "přidělování sítě pro instanci %s"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Získat výstup konzole pro instanci %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr "Uzel je v neznámém chybovém stavu."
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Nelze najít hostitele pro instanci %s"
@@ -7987,7 +8320,7 @@ msgstr "Verze agenta instance: %s"
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr "Aktualizace statistik hostitele"
@@ -8169,51 +8502,51 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr "Instance %s: SpuÅ¡tÄ›ní dokoÄení vrácení pÅ™esunu"
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "Plovoucí ip není nalezena pro id %(id)s."
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
#, fuzzy
msgid "finish_migration called"
msgstr "Instance %s: SpouÅ¡tÄ›ní dokonÄení pÅ™esunu"
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, fuzzy, python-format
msgid "Cannot find boot VHD file: %s"
msgstr "Neznámý základní soubor: %s"
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8353,12 +8686,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Přidělení plovoucí IP pro |%s|"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, fuzzy, python-format
msgid "Creating config drive at %(path)s"
msgstr "Vkládání cesty souboru: '%s'"
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, fuzzy, python-format
msgid "Creating config drive failed with error: %s"
msgstr "Vkládání cesty souboru: '%s'"
@@ -8524,7 +8857,7 @@ msgstr "Připojeni svazku: %(connection_info)s, %(instance_name)s, %(mountpoint)
msgid "Detaching physical disk from instance: %s"
msgstr "Vytváření snímku instance VM %s "
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr "Nelze zjistit název zavadÄ›Äe iscsi"
@@ -8558,247 +8891,247 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr "Neůze najít vbd pro vdi %s"
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "Připojování k libvirt: %s"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "skupina svazku %s neexistuje"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "Připojení k libvirt poškozeno"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "Připojování k libvirt: %s"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr "Chyba od libvirt bÄ›hem niÄení. Kód=%(errcode)s Chyba=%(e)s"
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
#, fuzzy
msgid "During wait destroy, instance disappeared."
msgstr "Při spuštění wait zmizelo %s."
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr "Instance úspěšnÄ› zniÄena."
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Instance budou zastaveny"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr "Chyba od libvirt bÄ›hem ruÅ¡ení urÄení. Kód=%(errcode)s Chyba=%(e)s"
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, fuzzy, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr "Chyba od libvirt bÄ›hem ruÅ¡ení urÄení. Kód=%(errcode)s Chyba=%(e)s"
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr "Mazání souborů instance %(target)s"
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, fuzzy, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr "Nelze naplánovat_%(method)s: %(ex)s"
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
#, fuzzy
msgid "Could not determine fibre channel world wide node names"
msgstr "Nelze zjistit název zavadÄ›Äe iscsi"
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
#, fuzzy
msgid "Could not determine fibre channel world wide port names"
msgstr "Nelze zjistit název zavadÄ›Äe iscsi"
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
#, fuzzy
msgid "During detach_volume, instance disappeared."
msgstr "Při spuštění wait zmizelo %s."
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Źádné sítÄ› nejsou urÄeny."
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
#, fuzzy
msgid "During detach_interface, instance disappeared."
msgstr "Při spuštění wait zmizelo %s."
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Źádné sítÄ› nejsou urÄeny."
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "Instance úspěšně restartována."
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Nelze restartovat instanci"
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
#, fuzzy
msgid "Instance shutdown successfully."
msgstr "Instance úspěšně vytvořena."
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr "Instance úspěšně restartována."
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr "Instance je spuštěna"
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr "Instance úspěšně vytvořena."
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr "data: %(data)r, fpath: %(fpath)r"
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "Uživatel nemá správcovská oprávnění"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "Vytváření obrazu"
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "Vkládání %(injection)s do obrazu %(img_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, fuzzy, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr "Ignorování chyby při vkládání dat do obrazu %(img_id)s (%(e)s)"
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8806,12 +9139,12 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
@@ -8820,27 +9153,27 @@ msgstr ""
"Chyba od libvirt při hledání %(instance_name)s: [Kód chyby "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
#, fuzzy
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
@@ -8849,35 +9182,35 @@ msgstr ""
"Nelze získat poÄet cpu, protože tato funkce není na této platformÄ› "
"zavedena. Tuto chybu lze prozatím bezpeÄnÄ› ignorovat."
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr "verze libvirt je příliš stará (nepodporuje getVersion)"
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Získávání velikosto brazu %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8885,21 +9218,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8908,16 +9241,16 @@ msgstr ""
"Vytváření doÄasného souboru %s pro informování ostatních poÄítaÄových "
"uzlů, že by se měli připojit ke stejnému úložišti."
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr "Přesunutí bloku nemůže být použito ve sdíleném úložišti."
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
#, fuzzy
msgid "Live migration can not be used without shared storage."
msgstr "Přesunutí bloku nemůže být použito ve sdíleném úložišti."
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, fuzzy, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
@@ -8926,7 +9259,7 @@ msgstr ""
"Nelze přesunout %(instance_id)s do %(dest)s: Nedostatek disku "
"(hostitel:%(available)s <= instance:%(necessary)s)"
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
@@ -8935,7 +9268,7 @@ msgstr ""
"Spuštěná instance má info o CPU:\n"
"%s"
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8950,7 +9283,7 @@ msgstr ""
"\n"
"Prohlédněte si %(u)s"
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8959,24 +9292,24 @@ msgstr ""
"Vytváření doÄasného souboru %s pro informování ostatních poÄítaÄových "
"uzlů, že by se měli připojit ke stejnému úložišti."
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Přesun před spuštěním selhal na %(dest)s"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, fuzzy, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
"plug_vifs() selhalo %(cnt)d.opakování až na %(max_retry)d pro "
"%(hostname)s."
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, fuzzy, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
@@ -8985,42 +9318,42 @@ msgstr ""
"Chyba od libvirt při hledání %(instance_name)s: [Kód chyby "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr "přeskakování %(path)s protože vypadá jako svazek"
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
#, fuzzy
msgid "Starting migrate_disk_and_power_off"
msgstr "Instance %s: Spouštění přesunu disku a vypnutí"
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
#, fuzzy
msgid "Instance running successfully."
msgstr "Instance %s úspěšně běží."
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
#, fuzzy
msgid "Starting finish_migration"
msgstr "Instance %s: SpouÅ¡tÄ›ní dokonÄení pÅ™esunu"
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
#, fuzzy
msgid "Starting finish_revert_migration"
msgstr "Instance %s: SpuÅ¡tÄ›ní dokoÄení vrácení pÅ™esunu"
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, fuzzy, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr "Mazání souborů instance %(target)s"
@@ -9055,11 +9388,11 @@ msgstr "Nwfilter (%(instance_filter_name)s) pro %(name)s nenalezen."
msgid "iptables firewall: Setup Basic Filtering"
msgstr "iptables firewall: Nastavení základního filtrování"
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, fuzzy, python-format
msgid "Unknown image_type=%s"
msgstr "neznámá obslužná rutina obrazu disku: %s"
@@ -9228,7 +9561,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -9236,17 +9569,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9337,48 +9670,48 @@ msgstr ""
"ISCSI svazek zatím v %(mount_device)s nenalezen:. Bude znovu provedeno "
"hledání a další pokus. Číslo pokusu: %(tries)s"
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, fuzzy, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr "Nalezen uzel iSCSI %(mount_device)s (po %(tries)s pokusech)"
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "obraz již je připojen"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "iSCSI zařízení v %s nenalezeno"
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, fuzzy, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
"ISCSI svazek zatím v %(mount_device)s nenalezen:. Bude znovu provedeno "
"hledání a další pokus. Číslo pokusu: %(tries)s"
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, fuzzy, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr "Nalezen uzel iSCSI %(mount_device)s (po %(tries)s pokusech)"
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "iSCSI zařízení v %s nenalezeno"
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, fuzzy, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
@@ -9387,7 +9720,7 @@ msgstr ""
"ISCSI svazek zatím v %(mount_device)s nenalezen:. Bude znovu provedeno "
"hledání a další pokus. Číslo pokusu: %(tries)s"
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, fuzzy, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr "Nalezen uzel iSCSI %(mount_device)s (po %(tries)s pokusech)"
@@ -9397,20 +9730,20 @@ msgstr "Nalezen uzel iSCSI %(mount_device)s (po %(tries)s pokusech)"
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9434,62 +9767,62 @@ msgstr "Odstraňování základního souboru: %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr "Nahrávání obrazu %s"
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "vytváření sr bez nástrojů svazku"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, fuzzy, python-format
msgid "Copying image to the device '%s'"
msgstr "Získávání velikosto brazu %s"
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "Filtry přidány do instance %s"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Nelze použít globální roli %(role_id)s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9537,7 +9870,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9692,27 +10025,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr "znaÄka [%s] nenalezena"
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr "In vmwareapi:_create_session, obdržena tato výjimka: %s"
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr "In vmwareapi:_call_method, obdržena tato výjimka: %s"
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr "Úkol [%(task_name)s] %(task_ref)s stav: úspěch"
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr "Úkol [%(task_name)s] %(task_ref)s stav: chyba %(error_info)s"
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr "In vmwareapi:_poll_task, Obdržena tato chyba %s"
@@ -9779,7 +10112,7 @@ msgstr "Obraz Glance %s je ve stavu ukonÄení"
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr "Obraz Glance %(image_id)s je v nezámém stavu - %(state)s"
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
@@ -9787,12 +10120,12 @@ msgstr ""
"Server ESX SOAP vrátil ve své odpovědi prázdnou skupinu portů pro "
"hostitelský systém"
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr "Vytváření skupiny portů s názvem %s na hostiteli ESX"
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr "Vytvořena skupina portů s názvem %s na hostiteli ESX"
@@ -10177,62 +10510,62 @@ msgstr "Mazání svazku s ID: %s "
msgid "Renamed the VM from %s"
msgstr "Vytvořit svazek ze snímku %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
"Nalezeno %(instance_count)d zaseknutých restartování starších než "
"%(timeout)d vteřin"
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, fuzzy, python-format
msgid "Automatically hard rebooting %d"
msgstr "Automatický tvrdý restart %d"
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr "get_diagnostics není zavedeno pro vmwareapi"
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
#, fuzzy
msgid "Reconfiguring VM instance to set the machine id"
msgstr "Znovu nastavování instance VM %s pro připojení obrazu disku"
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
#, fuzzy
msgid "Reconfigured VM instance to set the machine id"
msgstr "Instance VM %s znovu nastavena pro připojení obrazu disku"
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, fuzzy, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
"Znovu nastavování instance VM %(name)s pro úpravu id stroje s ip - "
"%(ip_addr)s"
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, fuzzy, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
"Instance VM %(name)s znovu nastavena pro úpravu id stroje s ip - "
"%(ip_addr)s"
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr "Vytváření adresáře s cestou %s"
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr "Vytvořen adresář s cestou %s"
@@ -10355,14 +10688,14 @@ msgstr "Nelze najít svazek v db"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "Bod připojení %(mountpoint)s odpojen od instance %(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, fuzzy, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
"ÄŒASOVà LIMIT: VyprÅ¡el Äas volání %(method)s. VM id=%(instance_uuid)s; "
"arg=%(args)r"
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, fuzzy, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
@@ -10371,12 +10704,12 @@ msgstr ""
"NEZAVEDENO: Volání %(method)s není agentem podporováno. VM "
"id=%(instance_uuid)s; arg=%(args)r"
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, fuzzy, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr "Volání %(method)s vrátilo chybu: %(e)s."
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, fuzzy, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
@@ -10385,67 +10718,67 @@ msgstr ""
"Volání %(method)s agentem vrátilo neplatnou odpovÄ›Ä: %(ret)r. VM "
"id=%(instance_uuid)s; cesta=%(path)s; arg=%(addl_args)r"
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr "Nelze se dotázat na verzi agenta: %(resp)r"
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr "Dotaz na verzi agenta"
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "Aktualizace agenta na %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr "Nelze aktualizovat agenta: %(resp)r"
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr "Nastavování správcovského hesla"
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr "Nelze vymÄ›nit klíÄe: %(resp)r"
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr "Nelze aktualizovat heslo: %(resp)r"
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, fuzzy, python-format
msgid "Injecting file path: %r"
msgstr "Vkládání cesty souboru: '%s'"
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr "Nelze vložit soubor: %(resp)r"
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr "Reset sítě"
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "Nelze vložit soubor: %(resp)r"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
@@ -10453,7 +10786,7 @@ msgstr ""
"Nástroje XenServer instalované v tomto obrazu jsou schopné vložit sítě. "
"Síťové soubory nebudou změněny"
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
@@ -10461,11 +10794,15 @@ msgstr ""
"Nástroje XenServer jsou v tomto obrazu přítomny, ale nejsou schopny "
"vložit síť"
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr "Nástroje XenServer nejsou v tomto obrazu nainstalovány"
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "Chyba OpenSSL: %s"
@@ -10484,24 +10821,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "Nelze deÅ¡ifrovat soukromý klíÄ: %s"
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr "Spuštění hostitele na XenServer není podporováno."
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr "Nelze se přihlásit do XenAPI (je disk Dom0 plný?)"
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Obdržena výjimka: %s"
@@ -10641,74 +10978,74 @@ msgstr ""
"PIF %(pif_rec['uuid'])s pro síť %(bridge)s má id VLAN %(pif_vlan)d. "
"OÄekáváno %(vlan_num)d"
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_vytvořit: %s"
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
#, fuzzy
msgid "VM already halted, skipping shutdown..."
msgstr "VM %(instance_uuid)s již je zastavena, přeskakování vypnutí..."
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "VBD v instanci %s nenalezeno"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "již odpojeno"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Nelze odpojit VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Nelze zniÄit VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "Vytvořeno VBD %(vbd_ref)s pro VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "Vytvořeno VBD %(vbd_ref)s pro VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr "Nelze zniÄit VDI %s"
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10717,37 +11054,37 @@ msgstr ""
"Vytvořeno VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, "
"%(read_only)s) na %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "Instance nemohla být nalezena"
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, fuzzy, python-format
msgid "block device info: %s"
msgstr "block_device_list %s"
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr "Zkopírováno VDI %(vdi_ref)s z VDI %(vdi_to_clone_ref)s"
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, fuzzy, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr "Nenalezeno žádné hlavní VDI pro %(vm_ref)s"
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "Spouštění snímku ve VM %s"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
@@ -10756,68 +11093,61 @@ msgstr ""
"Rychlé kopírování je podporováno pouze na výchozím místním SR typu ext. "
"SR na tomto systému je typu %(sr_type)s. Ignorování příznaku cow."
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, fuzzy, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr "xapi 'download_vhd' vrátil VDI typu '%(vdi_type)s' s UUID '%(vdi_uuid)s'"
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "Žádání xapi o získání obrazu vhd %(image)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+#: nova/virt/xenapi/vm_utils.py:1206
+#, fuzzy, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
"Velkost %(size_bytes) obrazu pÅ™ekraÄuje povolenou velikost "
"%(allowed_size_bytes)d typu instance"
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, fuzzy, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr "Získávání obrazu %(image)s"
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Velikost obrazu %(image)s:%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
@@ -10826,64 +11156,64 @@ msgstr ""
"Obraz Kernel/Ramdisk je příliš velký: %(vdi_size)d bajtů, max "
"%(max_size)d bajtů"
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Kopírování VDI %s do /boot/guest na dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Kernel/Ramdisk VDI %s zniÄeno"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "instance %s: nelze získat obraz glance"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr "Zjištěn formát %(image_type_str)s obrazu %(image_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Hledání vdi %s pro kernel PV"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr "Neznámý formát obrazu %(disk_image_type)s"
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s je stále dostupné"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "Znovu skenování SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr "Příznak sr_matching_filter '%s' se neřídí pravidly formátování"
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
@@ -10892,50 +11222,50 @@ msgstr ""
"XenAPI nelze najít úložiště na které nainstalovat instance hostů. Prosím "
"zkontrolujte Vaše nastavení a/nebo nastavte příznak 'sr_matching_filter'"
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr "Nelze najít SR typu obsahu ISO"
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr "ISO: hledání SR %(sr_rec)s"
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO: není obsah iso"
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr "ISO: typ obsahu iso, není klÃ­Ä 'i18n-key'"
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr "ISO: typ obsahu iso, hodnota i18n-key není 'local-storage-iso'"
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr "ISO: SR odpovídající naším kritériím"
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr "ISO: ISO, prozkoumáváno, zdali se jedná o místního hostitele"
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr "ISO: PBD %(pbd_ref)s zmizelo"
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr "ISO: shoda PBD, požadováno %(pbd_rec)s, získáno %(host)s"
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr "ISO: SR s místním PBD"
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
@@ -10944,22 +11274,22 @@ msgstr ""
"Nelze získat RRD XML pro VM %(vm_uuid)s mající podrobnosti serveru: "
"%(server)s."
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr "Nelze získat aktualizace RRD XML s podrobnostmi serveru: %(server)s."
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr "Neznámá data statistik od Xenserver: %s"
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s má nadřazenho %(parent_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10968,66 +11298,66 @@ msgstr ""
"Nadřazený %(parent_uuid)s se neshoduje s původním nadřazeným "
"%(original_parent_uuid)s, Äekání na splynutí..."
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr "PÅ™ekroÄeny pokusy o splynutí VHD (%(max_attempts)d), pÅ™eruÅ¡eno..."
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr "VyprÅ¡el Äasový limit pÅ™i Äekání na vytvoÅ™ení zařízení %s"
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Zapojování VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "Zapojování VBD %s hotovo."
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr "VBD %(vbd_ref)s zapojeno jako %(orig_dev)s"
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr "VBD %(vbd_ref)s zapojeno do špatného dev, znovu mapování do %(dev)s"
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "NiÄení VBD pro VDI %s ... "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "NiÄení VBD pro VDI %s hotovo."
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "Spouštění pygrub s %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Nalezen kernel Xen %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "Žádný kernel Xen nenalezen. Zavádění HVM."
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -11035,16 +11365,16 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "Oddíly:"
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr " %(num)s: %(ptype)s %(size)d sektorů"
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
@@ -11053,46 +11383,46 @@ msgstr ""
"Zapisování tabulky oddílů %(primary_first)d %(primary_last)d do "
"%(dev_path)s..."
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "Zapisování tabulky oddílů %s dokonÄeno."
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr "Přímé zacházení se soubory rozhraní"
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr "Nelze pÅ™ipojit souborový systém (oÄekáváno v nelinuxových instancích): %s"
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "Aktualizace postupu instance '%(instance_uuid)s' na %(progress)d"
@@ -11102,227 +11432,227 @@ msgstr "Aktualizace postupu instance '%(instance_uuid)s' na %(progress)d"
msgid "Importing image upload handler: %s"
msgstr "Odstraňování základního souboru: %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Spouštění instance..."
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr "Odstraňování souborů kernel/ramdisku z dom0"
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, fuzzy, python-format
msgid "Block device information present: %s"
msgstr "block_device_mapping %s"
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Nelze aktualizovat svazek v db"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
#, fuzzy
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
"Automatické nastavení disku pro instanci %(instance_uuid)s, pokus o změnu"
" velikosti oddílu..."
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
#, fuzzy
msgid "Starting VM"
msgstr "Restartování xvp"
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr "Psled v agenta pro %(hypervisor)s/%(os)s/%(architecture)s je %(version)s"
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr "Nenalezena žádná verze agenta pro %(hypervisor)s/%(os)s/%(architecture)s"
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr "Verze agenta instance: %s"
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr "Nastavování váhy VCPU"
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, fuzzy, python-format
msgid "Could not find VM with name %s"
msgstr "Nelze najít odkaz na VDI"
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "DokonÄen snímek a nahrání na VM %s"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr "Nelze převést vhd na nového hostitele"
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Nelze restartovat instanci"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr "Zvětšení velikosti VDI %(vdi_uuid)s z%(old_gb)d GB na %(new_gb)d GB"
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
#, fuzzy
msgid "Resize complete"
msgstr "Změna velikosti %s je hotova"
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
#, fuzzy
msgid "Unable to find root VBD/VDI for VM"
msgstr "Neůze najít vbd pro vdi %s"
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "Restartování xvp"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
#, fuzzy
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
"Instance %(instance_uuid)s pomocí RAW nebo VHD, přeskakování mazání "
"kernelu a ramdisku"
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr "Instance mí kernel nebo ramdisk, ale ne oba"
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr "soubory kernel/ramdisk odstraněny"
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
#, fuzzy
msgid "Destroying VM"
msgstr "Restartování xvp"
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr "VM není přítomno, pÅ™eskakování niÄení..."
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr "Instance již je v záchranném režimu: %s"
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "VM není přítomno, pÅ™eskakování niÄení..."
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
#, fuzzy
msgid "Automatically hard rebooting"
msgstr "Automatický tvrdý restart %d"
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "Vkládání informací o síti do xs pro vm: |%s|"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
#, fuzzy
msgid "Creating vifs"
msgstr "Vytváření obrazu"
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "vytváření VIF pro VM %(vm_ref)s, síť %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "vytváření VIF pro VM %(vm_ref)s, síť %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
#, fuzzy
msgid "Injecting hostname to xenstore"
msgstr "Vkládání názvu hostitele do xs pro vm: |%s|"
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Špatný formát sítě"
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
#, fuzzy
msgid "Migrate Send failed"
msgstr "Vytvoření selhalo"
@@ -11405,7 +11735,7 @@ msgstr "Připojeni svazku: %(connection_info)s, %(instance_name)s, %(mountpoint)
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "Instance %(instance_id)s nemohla být nastavena."
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11413,7 +11743,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "Neznámý základní soubor: %s"
@@ -11468,46 +11798,8 @@ msgstr "stav musí být dostupný"
msgid "status must be 'available'"
msgstr "stav musí být dostupný"
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr "Vyvoláno ChybaApiEC2: %s"
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr "argumenty create musí být kladná celá Äísla"
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
-#~ msgstr "Zmenšení velikosti VDI %(cow_uuid)s z %(old_gb)d GB na %(new_gb)d GB"
-
diff --git a/nova/locale/da/LC_MESSAGES/nova.po b/nova/locale/da/LC_MESSAGES/nova.po
index 225b114c0..8575f507c 100644
--- a/nova/locale/da/LC_MESSAGES/nova.po
+++ b/nova/locale/da/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-01-15 21:46+0000\n"
"Last-Translator: Soren Hansen <soren@linux2go.dk>\n"
"Language-Team: Danish <da@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,211 +156,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -368,85 +378,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -454,1037 +464,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1494,17 +1491,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1707,7 +1704,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,6 +1726,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1803,169 +1801,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2014,37 +2012,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2069,6 +2107,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2118,21 +2157,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2143,6 +2186,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2162,12 +2206,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2212,7 +2256,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2227,20 +2271,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2312,10 +2359,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2342,217 +2391,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2723,28 +2845,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2836,14 +2963,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2891,7 +3018,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3019,11 +3146,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3134,16 +3256,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3153,7 +3275,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3170,16 +3292,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3191,11 +3313,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3244,16 +3366,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3263,124 +3414,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3765,238 +3948,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4099,650 +4298,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4856,18 +5050,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4945,54 +5139,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5009,56 +5219,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5094,32 +5308,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5138,15 +5357,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5296,67 +5519,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5517,79 +5740,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5599,65 +5821,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5669,6 +5896,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5704,17 +5950,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5811,21 +6057,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -5999,18 +6301,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6039,44 +6346,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6337,38 +6644,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6440,10 +6747,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6451,6 +6765,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6486,14 +6805,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6563,46 +6882,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6641,12 +6960,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6691,43 +7010,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6740,17 +7022,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6759,7 +7044,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6776,25 +7061,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6804,22 +7096,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6881,30 +7173,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7057,22 +7387,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7092,7 +7422,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7102,28 +7432,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7698,7 +8028,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7870,50 +8200,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8050,12 +8380,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8213,7 +8543,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8247,236 +8577,236 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "bind %s: slettet"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8484,73 +8814,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8558,50 +8888,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8611,67 +8941,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8704,11 +9034,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8869,7 +9199,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8877,17 +9207,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8975,52 +9305,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9030,20 +9360,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9067,60 +9397,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9166,7 +9496,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9317,27 +9647,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9403,18 +9733,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9747,54 +10077,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9915,107 +10245,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10031,24 +10365,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10185,374 +10519,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10560,62 +10887,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10625,206 +10952,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10904,7 +11231,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10912,7 +11239,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10965,67 +11292,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/de/LC_MESSAGES/nova.po b/nova/locale/de/LC_MESSAGES/nova.po
index 3bee62cc7..6061944b5 100644
--- a/nova/locale/de/LC_MESSAGES/nova.po
+++ b/nova/locale/de/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-08-23 11:23+0000\n"
"Last-Translator: Thierry Carrez <thierry.carrez+lp@gmail.com>\n"
"Language-Team: German <de@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,211 +156,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -368,86 +378,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "Instanz %s: Rettung"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1038 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Einhängepunkt%(mountpoint)s zur Instanze %(instance_name)s hinzugefügt"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "keine Methode für diese Nachricht gefunden: %s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "keine Methode für diese Nachricht gefunden: %s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "Einhängepunkt%(mountpoint)s zur Instanze %(instance_name)s hinzugefügt"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "Einhängepunkt%(mountpoint)s zur Instanze %(instance_name)s hinzugefügt"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1241
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1245
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1249
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1254
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1259
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Alle vorhandenen FLAGS:"
-
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1496,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1709,7 +1705,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1731,6 +1727,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1805,170 +1802,170 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "Instanz %s: Rettung"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2017,37 +2014,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2072,6 +2109,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2121,21 +2159,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2146,6 +2188,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2165,12 +2208,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2215,7 +2258,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2230,20 +2273,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2315,10 +2361,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2345,217 +2393,291 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Instanz %s: Rettung"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2727,28 +2849,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Instanz %s pausiert"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2841,14 +2968,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Instanz %s pausiert"
@@ -2897,7 +3024,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3025,11 +3152,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3140,16 +3262,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3159,7 +3281,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3176,16 +3298,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3197,11 +3319,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3250,16 +3372,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3269,124 +3420,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "keine Methode für diese Nachricht gefunden: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "keine Methode für diese Nachricht gefunden: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr "Einhängepunkt%(mountpoint)s zur Instanze %(instance_name)s hinzugefügt"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Einhängepunkt%(mountpoint)s zur Instanze %(instance_name)s hinzugefügt"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3772,239 +3956,255 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Nicht möglich volume %s zufinden"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Nicht möglich volume %s zufinden"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4107,657 +4307,652 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Volume %s: erstelle Export"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "Instanz %s: Rettung"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "Instanz %s: Rettung"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Nicht möglich volume %s zufinden"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Instanz %s pausiert"
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "Instanz %s: Rettung"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4871,18 +5066,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4960,54 +5155,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5024,56 +5235,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5109,32 +5324,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5153,15 +5373,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5311,67 +5535,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5532,80 +5756,79 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Instanz %s pausiert"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5615,65 +5838,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5685,6 +5913,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5720,17 +5967,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5827,21 +6074,78 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Alle vorhandenen FLAGS:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6015,18 +6319,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6055,44 +6364,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6353,38 +6662,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Einhängepunkt%(mountpoint)s zur Instanze %(instance_name)s hinzugefügt"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6456,10 +6765,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6467,6 +6783,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6502,14 +6823,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6579,46 +6900,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6657,12 +6978,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6707,43 +7028,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6756,17 +7040,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6775,7 +7062,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6792,25 +7079,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6820,22 +7114,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6897,30 +7191,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7078,22 +7410,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7113,7 +7445,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7123,28 +7455,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7719,7 +8051,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7891,50 +8223,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8071,12 +8403,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8236,7 +8568,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8270,236 +8602,236 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "Volume %s: erfolgreich erstellt"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8507,73 +8839,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8581,50 +8913,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8634,67 +8966,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8727,11 +9059,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8892,7 +9224,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8900,17 +9232,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8998,52 +9330,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9053,20 +9385,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9090,60 +9422,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Nicht möglich volume %s zufinden"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9189,7 +9521,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9340,27 +9672,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9426,18 +9758,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9771,54 +10103,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr "Nicht möglich volume %s zufinden"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9941,107 +10273,111 @@ msgstr "Nicht möglich volume %s zufinden"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10057,24 +10393,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10211,374 +10547,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "keine Methode für diese Nachricht gefunden: %s"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10586,62 +10915,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10651,207 +10980,207 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Nicht möglich Volumen zur Instanze %s hinzuzufügen"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10932,7 +11261,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10940,7 +11269,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10993,67 +11322,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/en_AU/LC_MESSAGES/nova.po b/nova/locale/en_AU/LC_MESSAGES/nova.po
index 4dc37748d..b65e32f3d 100644
--- a/nova/locale/en_AU/LC_MESSAGES/nova.po
+++ b/nova/locale/en_AU/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-10-21 11:27+0000\n"
"Last-Translator: Tom Fifield <Unknown>\n"
"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,214 +157,224 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "Invalid signature for user %s"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "instance %s: booted"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "instance %s: booted"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Failed to get metadata for ip: %s"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Going to start terminating instances"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "Going to start terminating instances"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Going to start terminating instances"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -372,86 +382,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "instance %s: rescued"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -459,1039 +469,1026 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "setting network host"
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "instance %(instance_name)s: deleting instance files %(target)s"
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, fuzzy, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr "Associate address %(public_ip)s to instance %(instance_id)s"
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "group %s already exists"
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "setting network host"
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "volume group %s doesn't exist"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "Going to start terminating instances"
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
-msgstr ""
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "group %s already exists"
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "group %s already exists"
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "group %s already exists"
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "instance %s: booted"
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "Could not attach image to loopback: %s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "Could not attach image to loopback: %s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Going to try to terminate %s"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Going to try to terminate %s"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "instance %s: booted"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "instance %s: booted"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "group %s already exists"
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1229
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-#, fuzzy
-msgid "Failed to get nw_info"
-msgstr "Failed to get metadata for ip: %s"
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
-msgstr ""
-
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
+#: nova/notifications.py:232
+#, fuzzy
+msgid "Failed to get nw_info"
+msgstr "Failed to get metadata for ip: %s"
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "start address"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, fuzzy, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr "Starting %(topic)s node (version %(vcs_string)s)"
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Service killed that has no database entry"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Link Local address is not found.:%s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "Couldn't get Link Local IP of %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "Invalid backend: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1501,17 +1498,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1717,7 +1714,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr "An unknown error has occurred. Please try your request again."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr "Unsupported API request: controller = %(controller)s, action = %(action)s"
@@ -1739,6 +1736,7 @@ msgstr "Create key pair %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1814,172 +1812,172 @@ msgid "Detach Volume Failed."
msgstr "Detach volume %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "attribute not supported: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Allocate address"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Release address %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "Associate address %(public_ip)s to instance %(instance_id)s"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "Going to start terminating instances"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Reboot instance %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "De-registering image %s"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "Registered image %(image_location)s with id %(image_id)s"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "user or group not specified"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "only group \"all\" is supported"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "operation_type must be add or remove"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "Updating image %s publicity"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "instance %s: rescued"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2028,37 +2026,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Failed to get metadata for ip: %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Caught error: %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "Got exception: %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2083,6 +2121,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2132,21 +2171,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2157,6 +2200,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2176,12 +2220,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2226,7 +2270,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2241,20 +2285,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Calling getter %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2326,10 +2373,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2356,221 +2405,296 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Going to try to terminate %s"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Mountpoint cannot be translated: %s"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Mountpoint cannot be translated: %s"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "instance %s: booted"
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "instance %s: rescued"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Going to start terminating instances"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2744,28 +2868,33 @@ msgstr "Starting VLAN interface %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "instance %s: booted"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2860,14 +2989,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "setting network host"
@@ -2916,7 +3045,7 @@ msgstr "group %s already exists"
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3046,11 +3175,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr "Invalid signature for user %s"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3163,16 +3287,16 @@ msgstr ""
msgid "Create networks failed"
msgstr "setting network host"
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3182,7 +3306,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "Not enough parameters to build a valid rule."
@@ -3200,16 +3324,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3223,12 +3347,12 @@ msgstr "Reboot instance %r"
msgid "stop instance"
msgstr "Reboot instance %r"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "action: %s"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3277,16 +3401,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "Got exception: %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Release address %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Release address %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3296,124 +3449,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "no method for message: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "no method for message: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr "Going to start terminating instances"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Going to start terminating instances"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "Associate address %(public_ip)s to instance %(instance_id)s"
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3807,247 +3993,263 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
#, fuzzy
msgid "Cannot run any more instances of this type."
msgstr "Instance quota exceeded. You can only run %s more instances of this type."
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr "Instance quota exceeded. You can only run %s more instances of this type."
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Unable to attach volume to instance %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Going to run %s instances..."
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "instance %s: booted"
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Starting snapshot for VM %s"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Going to try to terminate %s"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "Create Security Group %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Unable to destroy VBD %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Unable to destroy VBD %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "Revoke security group ingress %s"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Delete security group %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorise security group ingress %s"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revoke security group ingress %s"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4151,670 +4353,666 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Going to start terminating instances"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Going to start terminating instances"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Unexpected error raised: %s"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Going to try to terminate %s"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Caught error: %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "setting network host"
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Going to try to terminate %s"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Detach volume %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Running instances: %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: rebooted"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "Injecting file path: '%s'"
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Going to start terminating instances"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Caught error: %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
#, fuzzy
msgid "Unrescuing"
msgstr "instance %s: unrescuing"
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: retrieving diagnostics"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "setting network host"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
#, fuzzy
msgid "Inject network info"
msgstr "setting network host"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Get console output for instance %s"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
#, fuzzy
msgid "Getting vnc console"
msgstr "Adding console"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "Adding console"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Detaching volume from unknown instance %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "instance %s: booted"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "instance %s: booted"
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Failed to get metadata for ip: %s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Deleting user %s"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instance %s: booted"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Deleting user %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4928,18 +5126,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5018,54 +5216,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "instance %s: rescued"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5082,56 +5296,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5167,32 +5385,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "Failed to decrypt private key: %s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "Failed to decrypt initialisation vector: %s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "Failed to decrypt image file %(image_file)s: %(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5211,16 +5434,20 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Going to start terminating instances"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, fuzzy, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "Associate address %(public_ip)s to instance %(instance_id)s"
@@ -5370,67 +5597,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d is stale, relaunching dnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq threw %s"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d is stale, relaunching dnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "killing radvd threw %s"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d is stale, relaunching radvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Invalid backend: %s"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Starting VLAN interface %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Failed to decrypt private key: %s"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Error starting xvp: %s"
@@ -5594,80 +5821,79 @@ msgstr "received %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "Get console output for instance %s"
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "instance %s: booted"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "setting network host"
@@ -5677,68 +5903,73 @@ msgstr "setting network host"
msgid "Quantum Error creating security group %s"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Delete security group %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Caught error: %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Revoke security group ingress %s"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Caught error: %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "Authorise security group ingress %s"
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5750,6 +5981,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "This rule already exists in group %s"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "Error starting xvp: %s"
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5785,17 +6035,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "received %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5892,21 +6142,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, fuzzy, python-format
+msgid "Starting %d workers"
+msgstr "start address"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6080,18 +6386,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "Returning exception %s to caller"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6120,44 +6431,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6423,38 +6734,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Going to start terminating instances"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6526,10 +6837,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6537,6 +6855,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6572,14 +6895,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6649,46 +6972,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Recovered model server connection!"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "model server went away"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6727,12 +7050,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6777,44 +7100,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "setting network host"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6827,17 +7112,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6846,7 +7134,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "Running instances: %s"
@@ -6863,25 +7151,32 @@ msgstr "After terminating instances: %s"
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6891,22 +7186,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6968,30 +7263,69 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "setting network host"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7149,22 +7483,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Going to start terminating instances"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Going to start terminating instances"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Injecting file path: '%s'"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7184,7 +7518,7 @@ msgstr "Get console output for instance %s"
msgid "PXE deploy failed for instance %s"
msgstr "Get console output for instance %s"
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7194,28 +7528,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "Get console output for instance %s"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Get console output for instance %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Get console output for instance %s"
@@ -7796,7 +8130,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7969,50 +8303,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "setting network host"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8152,12 +8486,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Going to start terminating instances"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, fuzzy, python-format
msgid "Creating config drive at %(path)s"
msgstr "Injecting file path: '%s'"
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, fuzzy, python-format
msgid "Creating config drive failed with error: %s"
msgstr "Injecting file path: '%s'"
@@ -8323,7 +8657,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "Creating a raw instance"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8357,239 +8691,239 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "Connecting to libvirt: %s"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "volume group %s doesn't exist"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "Connection to libvirt broke"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "Connecting to libvirt: %s"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Going to try to terminate %s"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "instance %s: rebooted"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr "data: %(data)r, fpath: %(fpath)r"
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, fuzzy, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
"instance %(inst_name)s: ignoring error injecting data into image "
"%(img_id)s (%(e)s)"
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8597,73 +8931,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Failed to get metadata for ip: %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8671,50 +9005,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8724,67 +9058,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Authentication Failure: %s"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8817,11 +9151,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8982,7 +9316,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8990,17 +9324,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9088,52 +9422,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "group %s already exists"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9143,20 +9477,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9180,61 +9514,61 @@ msgstr "Starting Bridge interface for %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Unable to locate volume %s"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Unable to detach volume %s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9280,7 +9614,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9431,27 +9765,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9517,18 +9851,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9868,54 +10202,54 @@ msgstr "Deleting user %s"
msgid "Renamed the VM from %s"
msgstr "Unable to locate volume %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -10038,107 +10372,111 @@ msgstr "Unable to detach volume %s"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "Calling getter %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, fuzzy, python-format
msgid "Injecting file path: %r"
msgstr "Injecting file path: '%s'"
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "Failed to get metadata for ip: %s"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "OpenSSL error: %s"
@@ -10158,24 +10496,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "Failed to decrypt private key: %s"
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Got exception: %s"
@@ -10314,72 +10652,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "VBD not found in instance %s"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "group %s already exists"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Unable to unplug VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Unable to destroy VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10388,237 +10726,230 @@ msgstr ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "Starting snapshot for VM %s"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, fuzzy, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr "Registered image %(image_location)s with id %(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Size for image %(image)s:%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Copying VDI %s to /boot/guest on dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Kernel/Ramdisk VDI %s destroyed"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Looking up vdi %s for PV kernel"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s is still available"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "Re-scanning SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s has parent %(parent_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10627,66 +10958,66 @@ msgstr ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Plugging VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "Plugging VBD %s done."
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "Destroying VBD for VDI %s ... "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "Destroying VBD for VDI %s done."
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "Running pygrub against %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Found Xen kernel %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "No Xen kernel found. Booting HVM."
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10694,62 +11025,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "Writing partition table %s done."
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10759,213 +11090,213 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr "Starting Bridge interface for %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Creating a raw instance"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
#, fuzzy
msgid "Starting VM"
msgstr "Restarting xvp"
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Finished snapshot and upload for VM %s"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Going to start terminating instances"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "Restarting xvp"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr "kernel/ramdisk files removed"
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
#, fuzzy
msgid "Destroying VM"
msgstr "Restarting xvp"
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "setting network host"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -11046,7 +11377,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11054,7 +11385,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "NotFound raised: %s"
@@ -11107,67 +11438,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/en_GB/LC_MESSAGES/nova.po b/nova/locale/en_GB/LC_MESSAGES/nova.po
index 07f369a23..d79d0fd61 100644
--- a/nova/locale/en_GB/LC_MESSAGES/nova.po
+++ b/nova/locale/en_GB/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-03-30 11:10+0000\n"
"Last-Translator: Anthony Harrington <untaintableangel@hotmail.co.uk>\n"
"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,73 +156,83 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "Volume %(volume_id)s is not attached to anything"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Keypair data is invalid"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "The request is invalid."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "Invalid input received"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Invalid volume"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Invalid IP protocol %(protocol)s."
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "Invalid content type %(content_type)s."
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "Invalid cidr %(cidr)s."
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
@@ -231,16 +241,16 @@ msgstr ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
@@ -249,123 +259,123 @@ msgstr ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "VBD not found in instance %s"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Unable to destroy VBD %s"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -373,86 +383,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "Invalid cidr %(cidr)s."
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "instance %s: resuming"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -460,1038 +470,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, fuzzy, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:787
+#: nova/exception.py:798
#, fuzzy, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "Invalid content type %(content_type)s."
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Unable to attach volume to instance %s"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1241
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1245
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1249
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1254
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1259
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Full set of FLAGS:"
-
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Link Local address is not found.:%s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "Couldn't get Link Local IP of %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "Invalid backend: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1501,17 +1497,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1714,7 +1710,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1736,6 +1732,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1810,170 +1807,170 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "instance %s: resuming"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
#, fuzzy
msgid "Invalid CIDR"
msgstr "Invalid cidr %(cidr)s."
@@ -2024,37 +2021,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Invalid instance type %(instance_type)s."
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2079,6 +2116,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2128,21 +2166,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2153,6 +2195,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2172,12 +2215,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2222,7 +2265,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2237,20 +2280,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Calling getter %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2322,10 +2368,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2352,218 +2400,293 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Instance %(instance_id)s is not running."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "Instance %(instance_id)s is not running."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "Instance %(instance_id)s is not running."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Invalid volume"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2735,28 +2858,33 @@ msgstr "Starting VLAN interface %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Instance %(instance_id)s is not running."
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2851,14 +2979,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "instance %s: suspending"
@@ -2907,7 +3035,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3035,11 +3163,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3151,16 +3274,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3170,7 +3293,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3187,16 +3310,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3208,12 +3331,12 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "An unknown exception occurred."
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3262,16 +3385,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3281,124 +3433,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Instance %(instance_id)s is not running."
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3787,240 +3972,256 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Unable to attach volume to instance %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Virtual Interface creation failed"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "Instance %(instance_id)s is not running."
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Unable to destroy VBD %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Unable to destroy VBD %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4124,664 +4325,659 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "volume %s: creating export"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Get console output for instance %s"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Unable to detach volume %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "VBD not found in instance %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Rebooting instance %s"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Invalid instance type %(instance_type)s."
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: retrieving diagnostics"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "instance %s: reset network"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Get console output for instance %s"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Detaching volume from unknown instance %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Instance %(instance_id)s is not running."
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "Instance %(instance_id)s is not running."
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Re-exporting %s volumes"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instance %s: snapshotting"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Re-exporting %s volumes"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "Invalid instance type %(instance_type)s."
@@ -4895,18 +5091,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4985,54 +5181,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5049,56 +5261,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5134,32 +5350,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5178,15 +5399,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5336,67 +5561,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d is stale, relaunching dnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq threw %s"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d is stale, relaunching dnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "killing radvd threw %s"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d is stale, relaunching radvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Invalid backend: %s"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Starting VLAN interface %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Starting Bridge interface for %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5558,80 +5783,79 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "Invalid instance type %(instance_type)s."
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "instance %s: suspending"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5641,65 +5865,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5711,6 +5940,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5746,17 +5994,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "Nested return %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5853,21 +6101,78 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Full set of FLAGS:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr "DB exception wrapped."
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6042,18 +6347,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6082,44 +6392,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6385,38 +6695,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6488,10 +6798,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6499,6 +6816,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6534,14 +6856,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6611,46 +6933,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6689,12 +7011,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6739,43 +7061,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6788,17 +7073,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6807,7 +7095,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6824,25 +7112,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6852,22 +7147,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6929,30 +7224,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7110,22 +7443,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Get console output for instance %s"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Instance %(instance_id)s is not running."
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Get console output for instance %s"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7145,7 +7478,7 @@ msgstr "Get console output for instance %s"
msgid "PXE deploy failed for instance %s"
msgstr "Invalid instance type %(instance_type)s."
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7155,28 +7488,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "Invalid instance type %(instance_type)s."
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Get console output for instance %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Invalid instance type %(instance_type)s."
@@ -7753,7 +8086,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7926,50 +8259,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "Get console output for instance %s"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8109,12 +8442,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Get console output for instance %s"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8280,7 +8613,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "Get console output for instance %s"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8314,237 +8647,237 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "Connection to melange failed"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "volume %s: created successfully"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "User does not have admin privileges"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8552,73 +8885,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Unable to detach volume %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8626,50 +8959,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8679,67 +9012,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8772,11 +9105,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8937,7 +9270,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8945,17 +9278,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9043,52 +9376,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9098,20 +9431,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9135,61 +9468,61 @@ msgstr "Starting Bridge interface for %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Unable to locate volume %s"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Unable to detach volume %s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9236,7 +9569,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9388,27 +9721,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9474,18 +9807,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9820,54 +10153,54 @@ msgstr "Re-exporting %s volumes"
msgid "Renamed the VM from %s"
msgstr "Unable to locate volume %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9990,107 +10323,111 @@ msgstr "Unable to detach volume %s"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "Calling getter %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10106,24 +10443,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10262,72 +10599,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "VBD not found in instance %s"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Unable to unplug VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Unable to destroy VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10336,236 +10673,229 @@ msgstr ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "Asking xapi to upload %(vdi_uuids)s as ID %(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Size for image %(image)s:%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Copying VDI %s to /boot/guest on dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Kernel/Ramdisk VDI %s destroyed"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Looking up vdi %s for PV kernel"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s is still available"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "Re-scanning SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s has parent %(parent_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10574,66 +10904,66 @@ msgstr ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Plugging VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "Plugging VBD %s done."
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "Destroying VBD for VDI %s ... "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "Destroying VBD for VDI %s done."
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "Running pygrub against %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Found Xen kernel %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "No Xen kernel found. Booting HVM."
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10641,62 +10971,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "Writing partition table %s done."
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10706,208 +11036,208 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr "Starting Bridge interface for %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Rebooting instance %s"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Rebooting instance %s"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "Creating VIF for VM %(vm_ref)s, network %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10988,7 +11318,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "Instance %(instance_id)s is not running."
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10996,7 +11326,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -11049,67 +11379,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/en_US/LC_MESSAGES/nova.po b/nova/locale/en_US/LC_MESSAGES/nova.po
index 15ae9e961..944933d3a 100644
--- a/nova/locale/en_US/LC_MESSAGES/nova.po
+++ b/nova/locale/en_US/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nova\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2013-01-21 18:28+0000\n"
"Last-Translator: Jeremy Stanley <fungi@yuggoth.org>\n"
"Language-Team: en_US <LL@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr "block_device_list %s"
@@ -159,73 +159,83 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "Volume %(volume_id)s is not attached to anything"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Keypair data is invalid"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "The request is invalid."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "Invalid input received"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Invalid volume"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr "Invalid metadata"
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr "Invalid metadata size"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Invalid IP protocol %(protocol)s."
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "Invalid content type %(content_type)s."
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "Invalid cidr %(cidr)s."
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr "Invalid Parameter: Unicode is not supported by the current database."
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
@@ -234,16 +244,16 @@ msgstr ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr "Group not valid. Reason: %(reason)s"
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr "Sort key supplied was not valid."
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
@@ -252,85 +262,85 @@ msgstr ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "Instance %(instance_id)s is not running."
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr "Instance %(instance_id)s is not in rescue mode"
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "Instance %(instance_id)s is not in rescue mode"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "Instance %(instance_id)s is not ready"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Failed to suspend instance"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Failed to reset network: %(resp)r"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Failed to set admin password on %(instance)s because %(reason)s"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Failed to set admin password on %(instance)s because %(reason)s"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Failed to reboot instance"
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr "Failed to terminate instance"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Failed to reboot instance"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "Service is unavailable at this time."
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr "Insufficient compute resources."
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "Compute service is unavailable at this time."
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr "The supplied hypervisor type of is invalid."
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr "The instance requires a newer hypervisor version than has been provided."
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
@@ -339,31 +349,31 @@ msgstr ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr "The supplied device path (%(path)s) is invalid."
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr "The supplied device path (%(path)s) is in use."
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr "The supplied device (%(device)s) is busy."
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "Unacceptable CPU info"
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s is not a valid IP v4/6 address."
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
@@ -372,7 +382,7 @@ msgstr ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -383,85 +393,85 @@ msgstr ""
"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
"one associated is %(actual)s."
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "Disk format %(disk_format)s is not acceptable"
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr "Image %(image_id)s is unacceptable: %(reason)s"
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr "Instance %(instance_id)s is unacceptable: %(reason)s"
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr "Ec2 id %(ec2_id)s is unacceptable."
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr "Expected a uuid but received %(uuid)s."
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "Invalid cidr %(cidr)s."
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr "Constraint not met."
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr "Resource could not be found."
-#: nova/exception.py:447
+#: nova/exception.py:458
#, fuzzy, python-format
msgid "No agent-build associated with id %(id)s."
msgstr "No fixed IP associated with id %(id)s."
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr "Volume %(volume_id)s could not be found."
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr "Snapshot %(snapshot_id)s could not be found."
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr "No target id found for volume %(volume_id)s."
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr "No disk at %(location)s"
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr "Could not find a handler for %(driver_type)s volume."
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr "Invalid image href %(image_href)s."
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr "Image %(image_id)s could not be found."
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -472,65 +482,65 @@ msgstr ""
" dynamically when they are listed for the first time. Have you listed "
"image ids since adding this image?"
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "Project %(project_id)s could not be found."
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr "Cannot find SR to read/write VDI."
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "Network %(network_id)s is still in use."
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr "Network %(network_id)s is still in use."
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr "%(req)s is required to create a network."
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "Network %(network_id)s could not be found."
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "Port %(port_id)s could not be found."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr "Network could not be found for bridge %(bridge)s"
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr "Network could not be found for uuid %(uuid)s"
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr "Network could not be found with cidr %(cidr)s."
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr "Network could not be found for instance %(instance_id)s."
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "No networks defined."
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
@@ -539,51 +549,51 @@ msgstr ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr "Could not find the datastore reference(s) which the VM uses."
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr "Port %(port_id)s is still in use."
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Network could not be found for instance %(instance_id)s."
-#: nova/exception.py:551
+#: nova/exception.py:562
#, fuzzy, python-format
msgid "No free port available for instance %(instance)s."
msgstr "Network could not be found for instance %(instance_id)s."
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr "No fixed IP associated with id %(id)s."
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr "Fixed ip not found for address %(address)s."
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "Instance %(instance_uuid)s has zero fixed ips."
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr "Network host %(host)s has zero fixed ips in network %(network_id)s."
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
@@ -592,7 +602,7 @@ msgstr ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
@@ -601,121 +611,121 @@ msgstr ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr "More than one instance is associated with fixed ip address '%(address)s'."
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr "Fixed IP address %(address)s is invalid."
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr "Zero fixed ips available."
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr "Zero fixed ips could be found."
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr "Floating ip %(address)s already exists."
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr "Floating ip not found for id %(id)s."
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr "The DNS entry %(name)s already exists in domain %(domain)s."
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr "Floating ip not found for address %(address)s."
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr "Floating ip not found for host %(host)s."
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr "Multiple floating ips are found for address %(address)s."
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr "Floating ip pool not found."
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr "Zero floating ips available."
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr "Floating ip %(address)s is associated."
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr "Floating ip %(address)s is not associated."
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr "Zero floating ips exist."
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr "Interface %(interface)s not found."
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr "Cannot disassociate auto assigined floating ip"
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr "Keypair %(name)s not found for user %(user_id)s"
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr "Certificate %(certificate_id)s not found."
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "Service %(service_id)s could not be found."
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr "Host %(host)s could not be found."
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr "Compute host %(host)s could not be found."
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr "Could not find binary %(binary)s on host %(host)s."
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr "Invalid reservation expiration %(expire)s."
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
@@ -724,56 +734,56 @@ msgstr ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr "Quota could not be found"
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr "Unknown quota resources %(unknown)s."
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr "Quota for project %(project_id)s could not be found."
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr "Quota class %(class_name)s could not be found."
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr "Quota usage for project %(project_id)s could not be found."
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr "Quota reservation %(uuid)s could not be found."
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr "Quota exceeded for resources: %(overs)s"
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr "Security group %(security_group_id)s not found."
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr "Security group %(security_group_id)s not found for project %(project_id)s."
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr "Security group with rule %(rule_id)s not found."
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
@@ -782,7 +792,7 @@ msgstr ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
@@ -791,37 +801,37 @@ msgstr ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
-#: nova/exception.py:746
+#: nova/exception.py:757
#, fuzzy, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr "Security group with rule %(rule_id)s not found."
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr "Migration %(migration_id)s could not be found."
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr "Migration not found for instance %(instance_id)s with status %(status)s."
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr "Console pool %(pool_id)s could not be found."
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
@@ -830,17 +840,17 @@ msgstr ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr "Console %(console_id)s could not be found."
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "Console for instance %(instance_uuid)s could not be found."
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
@@ -849,81 +859,81 @@ msgstr ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "Invalid console type %(console_type)s "
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr "Instance type %(instance_type_id)s could not be found."
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr "Instance type with name %(instance_type_name)s could not be found."
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr "Flavor %(flavor_id)s could not be found."
-#: nova/exception.py:809
+#: nova/exception.py:820
#, fuzzy, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr "Flavor access not found for %(flavor_id) / %(project_id) combination."
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "pool %s doesn't exist"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
#, fuzzy
msgid "Timeout waiting for response from cell"
msgstr "Timed out waiting for RPC response: %s"
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "Destroying VDIs for Instance %(instance_uuid)s"
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr "Scheduler Host Filter %(filter_name)s could not be found."
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
@@ -932,7 +942,7 @@ msgstr ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
@@ -941,63 +951,63 @@ msgstr ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr "File %(file_path)s could not be found."
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr "Zero files could be found."
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr "Virtual switch associated with the network adapter %(adapter)s not found."
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr "Network adapter %(adapter)s could not be found."
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr "Class %(class_name)s could not be found: %(exception)s"
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr "Action not allowed."
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr "Rotation is not allowed for snapshots"
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr "Rotation param is required for backup image_type"
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
msgstr "Key pair %(key_name)s already exists."
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr "Instance %(name)s already exists."
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "Instance Type with name %(name)s already exists."
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "Instance Type with ID %(flavor_id)s already exists."
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
@@ -1006,80 +1016,76 @@ msgstr ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr "%(path)s is not on shared storage: %(reason)s"
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr "%(path)s is not on local storage: %(reason)s"
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr "Migration error"
-#: nova/exception.py:931
+#: nova/exception.py:942
#, fuzzy
msgid "Migration pre-check error"
msgstr "Migration error"
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr "Malformed message body: %(reason)s"
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr "Could not find config at %(path)s"
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr "Could not load paste app '%(name)s' from %(path)s"
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr "When resizing, instances must change flavor!"
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr "Image is larger than instance type allows"
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr "Instance type's memory is too small for requested image."
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr "Instance type's disk is too small for requested image."
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr "Insufficient free memory on compute node to start %(uuid)s."
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr "Could not fetch bandwidth/cpu/disk metrics for this host."
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr "No valid host was found. %(reason)s"
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr "Quota exceeded"
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
@@ -1088,41 +1094,41 @@ msgstr ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr "Maximum number of floating ips exceeded"
-#: nova/exception.py:997
+#: nova/exception.py:1004
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Maximum number of floating ips exceeded"
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr "Maximum number of metadata items exceeds %(allowed)d"
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr "Personality file limit exceeded"
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr "Personality file path too long"
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr "Personality file content too long"
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr "Maximum number of key pairs exceeded"
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr "Maximum number of security groups or rules exceeded"
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
@@ -1131,125 +1137,125 @@ msgstr ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr "Aggregate %(aggregate_id)s could not be found."
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "Aggregate %(aggregate_name)s already exists."
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr "Aggregate %(aggregate_id)s has no host %(host)s."
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr "Aggregate %(aggregate_id)s already has host %(host)s."
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr "Unable to create instance type"
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr "Failed to set admin password on %(instance)s because %(reason)s"
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr "Detected existing vlan with id %(vlan)d"
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "Instance %(instance_id)s could not be found."
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "Console for instance %(instance_uuid)s could not be found."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Volume %(volume_id)s could not be found."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "Port %(port_id)s could not be found."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr "Marker %(marker)s could not be found."
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr "Invalid id: %(val)s (expecting \"i-...\")."
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "Could not fetch image %(image_id)s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "Could not fetch image %(image_id)s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr "Task %(task_name)s is already running on host %(host)s"
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr "Task %(task_name)s is not running on host %(host)s"
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "Instance %(instance_uuid)s is locked"
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Failed to dealloc network for deleted instance"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Failed to dealloc network for deleted instance"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
@@ -1258,11 +1264,11 @@ msgstr ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr "User data needs to be valid base 64."
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
@@ -1271,19 +1277,19 @@ msgstr ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, fuzzy, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr "Keypair %(name)s not found for user %(user_id)s"
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, fuzzy, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
@@ -1292,63 +1298,115 @@ msgstr ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "The CA file for %(project)s could not be found"
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "The CRL file for %(project)s could not be found"
-#: nova/exception.py:1170
+#: nova/exception.py:1177
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "set_admin_password is not implemented by this driver."
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "Instance %(instance_id)s is not in rescue mode"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "Instance %(instance_id)s is not in rescue mode"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "Instance Type with name %(name)s already exists."
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
+#: nova/exception.py:1225
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Expected object of type: %s"
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1359,7 +1417,7 @@ msgstr ""
msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/manager.py:166
+#: nova/manager.py:172
msgid "Notifying Schedulers of capabilities ..."
msgstr "Notifying Schedulers of capabilities ..."
@@ -1380,169 +1438,107 @@ msgstr "JSON file representing policy"
msgid "Rule checked when requested rule is not found"
msgstr "Rule checked when requested rule is not found"
-#: nova/quota.py:966
+#: nova/quota.py:972
#, python-format
msgid "Created reservations %(reservations)s"
msgstr "Created reservations %(reservations)s"
-#: nova/quota.py:988
+#: nova/quota.py:994
#, python-format
msgid "Failed to commit reservations %(reservations)s"
msgstr "Failed to commit reservations %(reservations)s"
-#: nova/quota.py:990
+#: nova/quota.py:996
#, fuzzy, python-format
msgid "Committed reservations %(reservations)s"
msgstr "Created reservations %(reservations)s"
-#: nova/quota.py:1010
+#: nova/quota.py:1016
#, python-format
msgid "Failed to roll back reservations %(reservations)s"
msgstr "Failed to roll back reservations %(reservations)s"
-#: nova/quota.py:1012
+#: nova/quota.py:1018
#, fuzzy, python-format
msgid "Rolled back reservations %(reservations)s"
msgstr "Failed to roll back reservations %(reservations)s"
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Full set of FLAGS:"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr "%(flag)s : FLAG SET "
-
-#: nova/service.py:214 nova/service.py:312
-#, python-format
-msgid "Caught %s, exiting"
-msgstr "Caught %s, exiting"
-
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
-msgstr "Parent process has died unexpectedly, exiting"
-
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
-msgstr "Forking too fast, sleeping"
-
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr "Unhandled exception"
-
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
-msgstr "Started child %d"
-
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
-msgstr "Starting %d workers"
-
-#: nova/service.py:348
-#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
-msgstr "Child %(pid)d killed by signal %(sig)d"
-
-#: nova/service.py:351
-#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
-msgstr "Child %(pid)d exited with status %(code)d"
-
-#: nova/service.py:354
-#, python-format
-msgid "pid %d not in child list"
-msgstr "pid %d not in child list"
-
-#: nova/service.py:374
-#, python-format
-msgid "Caught %s, stopping children"
-msgstr "Caught %s, stopping children"
-
-#: nova/service.py:385
-#, python-format
-msgid "Waiting on %d children to exit"
-msgstr "Waiting on %d children to exit"
-
-#: nova/service.py:427
+#: nova/service.py:152
#, fuzzy, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr "Starting %(topic)s node (version %(vcs_string)s)"
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr "Creating Consumer connection for Service %s"
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Service killed that has no database entry"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr "serve() can only be called once"
-#: nova/utils.py:145
+#: nova/utils.py:143
#, fuzzy, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Link Local address is not found.:%s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "Couldn't get Link Local IP of %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "Invalid backend: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "Unknown base file: %s"
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr "Expected object of type: %s"
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr "Invalid server_string: %s"
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc: '%(name)s' took %(total_time).2f secs"
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr "Reloading cached file %s"
@@ -1552,17 +1548,17 @@ msgstr "Reloading cached file %s"
msgid "Could not remove tmpdir: %s"
msgstr "Could not remove tmpdir: %s"
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "Server name is not a string or unicode"
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, fuzzy, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr "Server name must be less than 256 characters."
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1768,7 +1764,7 @@ msgstr "Environment: %s"
msgid "An unknown error has occurred. Please try your request again."
msgstr "An unknown error has occurred. Please try your request again."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr "Unsupported API request: controller = %(controller)s, action = %(action)s"
@@ -1790,6 +1786,7 @@ msgstr "Create key pair %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr "Quota exceeded, too many key pairs."
@@ -1864,132 +1861,132 @@ msgid "Detach Volume Failed."
msgstr "Detach Volume Failed."
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "attribute not supported: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr "vol = %s\n"
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Allocate address"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr "No more floating IPs available"
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Release address %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr "Unable to release IP Address."
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "Associate address %(public_ip)s to instance %(instance_id)s"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Unable to associate IP Address, no fixed_ips."
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr "multiple fixed_ips exist, using the first: %s"
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr "Floating ip is already associated."
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr "l3driver call to add floating ip failed."
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr "Error, unable to associate floating ip."
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Disassociate address %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr "Floating ip is not associated."
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr "Cannot disassociate auto assigned floating ip"
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr "Image must be available"
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "Going to start terminating instances"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Reboot instance %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr "Going to stop instances"
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr "Going to start instances"
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "De-registering image %s"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr "imageLocation is required"
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "Registered image %(image_location)s with id %(image_id)s"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "user or group not specified"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "only group \"all\" is supported"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "operation_type must be add or remove"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "Updating image %s publicity"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr "Not allowed to modify attributes for image %s"
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
@@ -1998,40 +1995,40 @@ msgstr ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "Couldn't stop instance with in %d sec"
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr "image of %(instance)s at %(now)s"
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
#, fuzzy
msgid "Expecting a list of resources"
msgstr "Getting list of instances"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "instance not present"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "Getting list of instances"
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr "Invalid CIDR"
@@ -2082,26 +2079,26 @@ msgstr "Invalid request: %s"
msgid "Failed to get metadata for instance id: %s"
msgstr "Failed to get metadata for ip: %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Caught error: %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr "%(url)s returned with HTTP %(status)d"
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr "Must specify an ExtensionManager class"
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr "Extended resource: %s"
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
@@ -2110,11 +2107,51 @@ msgstr ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr "Extension %(ext_name)s extending resource: %(collection)s"
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, fuzzy, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr "Calling extension factory %s"
+
+#: nova/api/openstack/__init__.py:287
+#, fuzzy, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr "Loading extension %s"
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "Loading extension %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2141,6 +2178,7 @@ msgid "offset param must be positive"
msgstr "offset param must be positive"
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr "marker [%s] not found"
@@ -2190,21 +2228,25 @@ msgid "Loaded extension: %s"
msgstr "Loaded extension: %s"
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr "Ext name: %s"
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr "Ext alias: %s"
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr "Ext description: %s"
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr "Ext namespace: %s"
@@ -2215,6 +2257,7 @@ msgid "Ext updated: %s"
msgstr "Ext updated: %s"
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr "Exception loading extension: %s"
@@ -2234,12 +2277,12 @@ msgstr "Calling extension factory %s"
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "Failed to load extension %(ext_factory)s: %(exc)s"
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr "Failed to load extension %(classpath)s: %(exc)s"
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, fuzzy, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr "Failed to load extension %(ext_name)s: %(exc)s"
@@ -2284,7 +2327,7 @@ msgstr "Empty body provided in request"
msgid "There is no such action: %s"
msgstr "There is no such action: %s"
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2299,20 +2342,23 @@ msgstr "Malformed request body"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Calling setter %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Unsupported Content-Type"
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
-msgstr "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2384,10 +2430,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr "Instance does not exist"
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr "Instance is not a member of specified network"
@@ -2416,220 +2464,295 @@ msgid "Metadata item was not found"
msgstr "Metadata item was not found"
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr "Invalid changes-since value"
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr "Only administrators may list deleted instances"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Host '%s' could not be found."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr "Instance could not be found"
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr "Bad personality format: missing %s"
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr "Bad personality format"
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr "Personality content for %s cannot be decoded"
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr "Unknown argment : port"
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr "Bad port format: port uuid is not in proper format (%s)"
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr "Bad networks format: network uuid is not in proper format (%s)"
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "Invalid fixed IP address (%s)"
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Duplicate networks (%s) are not allowed"
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr "Bad network format: missing %s"
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr "Bad networks format"
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr "Userdata content cannot be decoded"
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr "accessIPv4 is not proper IPv4 format"
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr "accessIPv6 is not proper IPv6 format"
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr "Server name is not defined"
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr "Invalid flavorRef provided."
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr "min_count must be an integer value"
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr "min_count must be > 0"
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr "max_count must be an integer value"
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr "max_count must be > 0"
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr "min_count must be <= max_count"
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr "Can not find requested image"
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr "Invalid key_name provided."
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr "HostId cannot be updated."
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "HostId cannot be updated."
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr "Instance has not been resized."
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "Instance %(instance_id)s could not be found."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr "Argument 'type' for reboot is not HARD or SOFT"
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr "Missing argument 'type' for reboot"
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr "Unable to locate requested flavor."
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr "Resize requires a flavor change."
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "Instance %(instance_id)s could not be found."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "%s is a valid instance name"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr "Missing imageRef attribute"
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr "Invalid imageRef provided."
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr "Missing flavorRef attribute"
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr "No adminPass was specified"
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr "Invalid adminPass"
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Failed to soft reboot instance."
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr "Unable to parse metadata key/value pairs."
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "Resize request has invalid 'flavorRef' attribute."
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr "Resize requests require 'flavorRef' attribute."
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr "Invalid request body"
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr "Could not parse imageRef from request."
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr "Cannot find image for rebuild"
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr "createImage entity requires name attribute"
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, fuzzy, python-format
msgid "Removing options '%s' from query"
msgstr "Removing options '%(unk_opt_str)s' from query"
@@ -2805,30 +2928,35 @@ msgstr "Starting VLAN interface %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Rule (%s) not found"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
#, fuzzy
msgid "Cell name cannot be empty"
msgstr "Security group name cannot be empty"
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
#, fuzzy
msgid "No cell information in request"
msgstr "Block device information present: %s"
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2926,14 +3054,14 @@ msgstr "host and block_migration must be specified."
msgid "Error in evacuate, %s"
msgstr "Error in migrate %s"
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Fixed ip %(fixed_ip_id)s not found"
@@ -2982,7 +3110,7 @@ msgstr "Floating ip is not associated"
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr "Missing parameter dict"
@@ -3115,11 +3243,6 @@ msgstr "No hypervisor matching '%s' could be found."
msgid "Invalid timestamp for date %s"
msgstr "Invalid timestamp for date %s"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr "Key pair '%s' already exists."
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr "Missing 'networkId' argument for addFixedIp"
@@ -3235,16 +3358,16 @@ msgstr "Quota exceeded, too many key pairs."
msgid "Create networks failed"
msgstr "Create failed"
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr "Quota limit must be -1 or greater."
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, fuzzy, python-format
msgid "Quota for %s should be integer."
msgstr "version should be an integer"
@@ -3254,7 +3377,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr "Malformed scheduler_hints attribute"
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "Not enough parameters to build a valid rule."
@@ -3273,16 +3396,16 @@ msgstr "Showing network with id %s"
msgid "security group default rule not found"
msgstr "Security group with rule %(rule_id)s not found."
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, fuzzy, python-format
msgid "Bad prefix for network in cidr %s"
msgstr "Bad prefix for to_global_ipv6: %s"
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr "Security group not specified"
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr "Security group name cannot be empty"
@@ -3294,12 +3417,12 @@ msgstr "start instance"
msgid "stop instance"
msgstr "stop instance"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "Unknown chain: %r"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
#, fuzzy
msgid "Unknown service"
msgstr "unknown guestmount error"
@@ -3349,16 +3472,45 @@ msgstr "Create snapshot from volume %s"
msgid "Invalid value '%s' for force."
msgstr "Invalid value '%s' for force. "
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "Loaded extension: %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, fuzzy, python-format
+msgid "Ext version: %i"
+msgstr "Ext description: %s"
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Release address %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Release address %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, fuzzy, python-format
+msgid "Running _create_extension_point for %s"
+msgstr "Calling extension factory %s"
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr "Instance has had its instance_type removed from the DB"
@@ -3368,124 +3520,157 @@ msgstr "Instance has had its instance_type removed from the DB"
msgid "Error processing message locally: %(exc)s"
msgstr "Error processing message. Skipping it."
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "no method for message: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, fuzzy, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr "Failed to load extension %(ext_factory)s: %(exc)s"
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "no method for message: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, fuzzy, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr "Sending message(s) to: %s"
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, fuzzy, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr "Casted '%(method)s' to compute '%(host)s'"
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "Migration not found for instance %(instance_id)s with status %(status)s."
+msgid "Got update for instance: %(instance)s"
+msgstr "Starting migration network for instance %(instance_uuid)s"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Starting migration network for instance %(instance_uuid)s"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "Destroying VDIs for Instance %(instance_uuid)s"
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr "Instance type for vpn instances"
@@ -3886,16 +4071,26 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr "Cannot run any more instances of this type."
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr "Can only run %s more instances of this type."
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
@@ -3904,7 +4099,7 @@ msgstr ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
@@ -3913,93 +4108,93 @@ msgstr ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr "Metadata property key blank"
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr "Metadata property key greater than 255 characters"
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr "Metadata property value greater than 255 characters"
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Unable to attach boot volume to instance %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Going to run %s instances..."
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "Instance type %(instance_type_id)s could not be found."
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Going to start terminating instances"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, fuzzy, python-format
msgid "instance's host %s is down, deleting from database"
msgstr "host for instance is down, deleting from database"
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr "Going to try to soft delete instance"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr "Going to try to terminate instance"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr "Going to try to stop instance"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr "Going to try to start instance"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr "Searching by: %s"
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr "snapshot for %s"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr "flavor_id is None. Assuming migration."
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -4008,62 +4203,63 @@ msgstr ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, fuzzy, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr "%(overs)s quota exceeded for %(pid)s, tried to resize instance. %(msg)s"
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr "Locking"
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr "Unlocking"
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr "Volume must be attached in order to detach."
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Going to try to live migrate instance to %s"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr "Keypair name contains unsafe characters"
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr "Keypair name must be between 1 and 255 characters long"
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr "Security group %s is not a string or unicode"
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr "Security group %s cannot be empty."
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
@@ -4072,63 +4268,68 @@ msgstr ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr "Security group %s should not be greater than 255 characters."
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr "Quota exceeded, too many security groups."
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "Create Security Group %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr "Security group %s already exists"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Unable to destroy vbd %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Unable to destroy vbd %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr "Security group is still in use"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr "Failed to update usages deallocating security group"
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Delete security group %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr "Rule (%s) not found"
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr "Quota exceeded, too many security group rules."
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorize security group ingress %s"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revoke security group ingress %s"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr "Security group id should be integer"
@@ -4237,262 +4438,249 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr "Instance has been destroyed from under us while trying to set it to ERROR"
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Failed to terminate instance"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr "Current state is %(drv_state)s, state in DB is %(db_state)s."
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr "Rebooting instance after nova-compute restart."
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr "Hypervisor driver does not support resume guests"
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Failed to suspend instance"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "Hypervisor driver does not support firewall rules"
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Unexpected status code"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "Checking state"
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr "Setting up bdm %s"
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, fuzzy, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr "Memory limit not specified, defaulting to unlimited"
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr "Failed to dealloc network for deleted instance"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "Instance failed to spawn"
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "DB error: %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr "Error trying to reschedule"
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr "Retry info not present, will not reschedule"
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr "No request spec, will not reschedule"
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, fuzzy, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr "Re-scheduling instance: attempt %d"
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr "Instance build timed out. Set to error state."
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "Starting instance..."
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "Floating ip pool not found."
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr "Instance failed network setup"
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "Instance network_info: |%s|"
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "Instance failed block device setup"
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "Instance failed to spawn"
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "Deallocating network for instance"
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s instance"
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Failed to dealloc network for deleted instance"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr "%(action_str)s instance"
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr "Ignoring DiskNotFound: %s"
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "Ignoring VolumeNotFound: %s"
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "terminating bdm %s"
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr "Ignoring volume cleanup failure due to %s"
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s. Setting instance vm_state to ERROR"
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr "Rebuilding instance"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, fuzzy, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr "%(path)s is not on shared storage: %(reason)s"
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Attach boot from volume failed: %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr "Rebooting instance"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
@@ -4501,21 +4689,21 @@ msgstr ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Cannot reboot instance: %(exc)s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: rebooted"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr "instance snapshotting"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
@@ -4524,45 +4712,45 @@ msgstr ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "Found %(num_images)d images (rotation: %(rotation)d)"
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr "Rotating out %d backups"
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr "Deleting image %s"
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr "Failed to set admin password. Instance %s is not running"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr "Root password set"
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
#, fuzzy
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr "set_admin_password is not implemented by this driver."
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr "set_admin_password failed: %s"
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr "error setting admin password"
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
@@ -4571,111 +4759,116 @@ msgstr ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr "injecting file to %(path)s"
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr "Rescuing"
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Error trying to reschedule"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "DB error: %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr "Unrescuing"
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr "Changing instance metadata according to %(diff)r"
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Setting instance to %(state)s state."
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "Instance has no volume."
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr "destination same as source!"
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr "Migrating"
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr "Failed to rollback quota for failed finish_resize: %(qr_error)s"
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr "Pausing"
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr "Unpausing"
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr "Retrieving diagnostics"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr "Resuming"
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr "Reset network"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr "Inject network info"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr "network_info to inject: |%s|"
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr "Get console output"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr "Getting vnc console"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "Getting vnc console"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr "Booting with volume %(volume_id)s at %(mountpoint)s"
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr "Attaching volume %(volume_id)s to %(mountpoint)s"
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
@@ -4684,59 +4877,59 @@ msgstr ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Failed to attach volume %(volume_id)s at %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr "Detach volume %(volume_id)s from mountpoint %(mp)s"
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr "Detaching volume from unknown instance"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Faild to detach volume %(volume_id)s from %(mp)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, fuzzy, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr "allocate_for_instance() for %s"
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Port %(port_id)s is still in use."
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Host %(host)s could not be found."
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr "Pre live migration failed at %(dest)s"
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr "_post_live_migration() is started.."
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr "Migrating instance to %(dest)s finished successfully."
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4744,20 +4937,20 @@ msgstr ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr "Post operation of migration started"
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Failed to get info for disk %s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr "Updated the info_cache for instance"
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
@@ -4766,12 +4959,12 @@ msgstr ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr "Setting migration %(migration_id)s to error: %(reason)s"
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
@@ -4780,26 +4973,26 @@ msgstr ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "Instance %(instance_uuid)s not found"
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr "In ERROR state"
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, fuzzy, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr "In states %(vm_state)s/%(task_state)s, notRESIZED/None"
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr "Error auto-confirming resize: %(e)s. Will retry later."
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
@@ -4808,25 +5001,25 @@ msgstr ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr "Failed to generate usage audit for instance on host %s"
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr "Updating bandwidth usage cache"
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Updating bandwidth usage cache"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr "Updating host status"
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4835,11 +5028,11 @@ msgstr ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr "During sync_power_state the instance has a pending task. Skip."
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
@@ -4848,57 +5041,57 @@ msgstr ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr "Instance shutdown by itself. Calling the stop API."
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr "error during stop() in sync_power_state."
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
#, fuzzy
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr "Instance is paused or suspended unexpectedly. Calling the stop API."
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
#, fuzzy
msgid "Instance is paused unexpectedly. Ignore."
msgstr "Instance is paused or suspended unexpectedly. Calling the stop API."
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr "Instance is not stopped. Calling the stop API."
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr "Instance is not (soft-)deleted."
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0, skipping..."
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr "Reclaiming deleted instance"
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Loading compute driver '%s'"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr "No service record for host %s"
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
@@ -4907,7 +5100,7 @@ msgstr ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
@@ -4916,12 +5109,12 @@ msgstr ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, fuzzy, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr "Unrecognized value '%(action)s' for FLAGS.running_deleted_instance_action"
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "Setting instance to %(state)s state."
@@ -5045,18 +5238,18 @@ msgstr "Unable to find host for Instance %s"
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr "Using %(prefix)s instead of %(req_prefix)s"
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5137,56 +5330,72 @@ msgstr "Checking Token: %(token)s, %(token_valid)s)"
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Failed to reboot instance"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Failed to reboot instance"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr "Unrecognized read_deleted value '%s'"
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "instance %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "instance %s: rescued"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr "Change will make usage less than 0 for the following resources: %(unders)s"
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5203,56 +5412,61 @@ msgstr "version should be an integer"
msgid "Upgrade DB using Essex release first."
msgstr "Upgrade DB using Essex release first."
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+#, fuzzy
+msgid "Unsupported id columns type"
+msgstr "Unsupported Content-Type"
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5291,32 +5505,37 @@ msgstr "Failed to download %(image_location)s to %(image_path)s"
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr "Failed to decrypt %(image_location)s to %(image_path)s"
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr "Failed to untar %(image_location)s to %(image_path)s"
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr "Failed to upload %(image_location)s to %(image_path)s"
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "Failed to decrypt private key: %s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "Failed to decrypt initialization vector: %s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "Failed to decrypt image file %(image_file)s: %(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr "Unsafe filenames in image"
@@ -5335,16 +5554,20 @@ msgstr "Bad prefix for to_global_ipv6: %s"
msgid "Bad project_id for to_global_ipv6: %s"
msgstr "Bad project_id for to_global_ipv6: %s"
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr "instance is a required argument to use @refresh_cache"
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Failed to terminate instance"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "re-assign floating IP %(address)s from instance %(instance_id)s"
@@ -5504,67 +5727,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d is stale, skip killing dnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq threw %s"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d is stale, relaunching dnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "killing radvd threw %s"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d is stale, relaunching radvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Invalid mode: '%s'"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Starting VLAN interface %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Starting bridge %s "
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, fuzzy, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr "Ensuring vlan %(vlan)s and bridge %(bridge)s"
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr "Failed to add interface: %s"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr "Starting bridge %s "
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr "Done starting bridge %s"
@@ -5738,80 +5961,80 @@ msgstr "_delete: %s"
msgid "Cannot delete domain |%s|"
msgstr "Cannot delete aggregate: %(id)s"
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr "v4 subnets are required for legacy nw_info"
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
-msgstr ""
+#: nova/network/quantumv2/__init__.py:67
+#, fuzzy
+msgid "quantum authentication failed"
+msgstr "Authentication error"
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr "allocate_for_instance() for %s"
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr "empty project id for instance %s"
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Host not found"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr "Fail to delete port %(portid)s with failure: %(exception)s"
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr "deallocate_for_instance() for %s"
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr "Failed to delete quantum port %(portid)s "
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, fuzzy, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr "Failed to delete quantum port %(portid)s "
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr "get_instance_nw_info() for %s"
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, fuzzy, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr "Fail to delete port %(portid)s with failure: %(exception)s"
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, fuzzy, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr "Fail to delete port %(portid)s with failure: %(exception)s"
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr "validate_networks() for %s"
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "Multiple floating IP pools matches found for name '%s'"
@@ -5821,68 +6044,73 @@ msgstr "Multiple floating IP pools matches found for name '%s'"
msgid "Quantum Error creating security group %s"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Delete security group %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Caught error: %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Security group id should be integer"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Delete security group %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Caught error: %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "Security group with rule %(rule_id)s not found."
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, fuzzy, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr "Security group %(security_group_id)s not found for project %(project_id)s."
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5896,6 +6124,26 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "This rule already exists in group %s"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "error setting admin password"
+
+#: nova/objects/base.py:145
+#, fuzzy
+msgid "Invalid version string"
+msgstr "Invalid server_string: %s"
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, fuzzy, python-format
msgid "Original exception being dropped: %s"
@@ -5931,17 +6179,17 @@ msgstr "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
msgid "Deprecated: %s"
msgstr "Deprecated Config: %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, fuzzy, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr "Error reading image info file %(filename)s: %(error)s"
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr "syslog facility must be one of: %s"
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, fuzzy, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr "Fatal call to deprecated config %(msg)s"
@@ -6040,21 +6288,78 @@ msgstr "Environment not supported over SSH"
msgid "process_input not supported over SSH"
msgstr "process_input not supported over SSH"
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Full set of FLAGS:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr "Caught %s, exiting"
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr "Parent process has died unexpectedly, exiting"
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr "Forking too fast, sleeping"
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr "Unhandled exception"
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr "Started child %d"
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr "Starting %d workers"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr "Child %(pid)d killed by signal %(sig)d"
+
+#: nova/openstack/common/service.py:262
+#, fuzzy, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr "Child %(pid)d exited with status %(code)d"
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr "pid %d not in child list"
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr "Caught %s, stopping children"
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr "Waiting on %d children to exit"
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr "DB exception wrapped."
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr "SQL connection failed. %s attempts left."
@@ -6234,18 +6539,23 @@ msgid ""
"endpoint."
msgstr "Specified RPC version, %(version)s, not supported by this endpoint."
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, fuzzy, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr "Failed to remove %(base_file)s, error was %(error)s"
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "Returning exception %s to caller"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr "Failed to process message... skipping it."
@@ -6278,44 +6588,44 @@ msgstr ""
"again in %(sleep_time)d seconds."
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr "Timed out waiting for RPC response: %s"
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr "Failed to consume message from queue: %s"
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr "Failed to publish message to topic '%(topic)s': %(err_str)s"
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, fuzzy, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr "Unable to connect to AMQP server: %s"
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr "Connected to AMQP server on %s"
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr "Re-established AMQP queues"
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr "Error processing message. Skipping it."
@@ -6582,21 +6892,21 @@ msgstr "Attempting to build %(num_instances)d instance(s)"
msgid "Request Spec: %s"
msgstr "Request: %s"
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Destroying VDIs for Instance %(instance_uuid)s"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr "Invalid value for 'scheduler_max_attempts', must be >= 1"
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
@@ -6605,17 +6915,17 @@ msgstr ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "Filtered %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, fuzzy, python-format
msgid "Weighed %(hosts)s"
msgstr "Filtered %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6689,10 +6999,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
-#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+#, fuzzy, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr "%(host_state)s fails instance_type extra_specs requirements"
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, fuzzy, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr "%(host_state)s fails instance_type extra_specs requirements"
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6700,6 +7017,11 @@ msgstr "%(host_state)s fails instance_type extra_specs requirements"
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr "%(host_state)s fails instance_type extra_specs requirements"
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6741,7 +7063,7 @@ msgstr ""
"Instance properties %(image_props)s are satisfied by compute host "
"capabilities %(capabilities)s"
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
@@ -6750,7 +7072,7 @@ msgstr ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr "%(host_state)s does not support requested instance_properties"
@@ -6826,47 +7148,47 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Recovered model server connection!"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "model server went away"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
#, fuzzy
msgid "memcached_servers not defined"
msgstr "Server name is not defined"
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6905,12 +7227,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6955,46 +7277,6 @@ msgstr ""
msgid "already detached"
msgstr "already detached"
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr "Please extend mock libvirt module to support flags"
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr "Expected a list for 'auth' parameter"
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr "Expected a function in 'auth[0]' parameter"
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr "Expected a function in 'auth[1]' parameter"
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "marker [%s] not found"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr "Creating files in %s to simulate guest agent"
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr "Removing simulated guest agent files in %s"
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr "200 Role Match"
@@ -7007,7 +7289,8 @@ msgstr "200 No Roles"
msgid "unexpected role header"
msgstr "unexpected role header"
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
@@ -7015,11 +7298,13 @@ msgstr ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
@@ -7028,7 +7313,7 @@ msgstr "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "Running instances: %s"
@@ -7045,26 +7330,35 @@ msgstr "After terminating instances: %s"
msgid "Internal error"
msgstr "Internal error"
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr "After force-killing instances: %s"
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
#, fuzzy
msgid "spawn error"
msgstr "unknown guestmount error"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+
+#: nova/tests/integrated/test_api_samples.py:181
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr "Result: %(result)s is not a dict."
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -7074,22 +7368,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr "Result: %(result)s is not a list."
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, fuzzy, python-format
msgid ""
"Values do not match:\n"
@@ -7157,31 +7451,70 @@ msgstr "Unexpected status code"
msgid "Decoding JSON: %s"
msgstr "Decoding JSON: %s"
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "marker [%s] not found"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr "Please extend mock libvirt module to support flags"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr "Expected a list for 'auth' parameter"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr "Expected a function in 'auth[0]' parameter"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr "Expected a function in 'auth[1]' parameter"
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr "Creating files in %s to simulate guest agent"
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr "Removing simulated guest agent files in %s"
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr "Added %(filepath)s to config drive"
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr "Compute driver option required, but not specified"
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr "Loading compute driver '%s'"
-#: nova/virt/driver.py:962
-#, fuzzy, python-format
+#: nova/virt/driver.py:980
+#, fuzzy
msgid "Unable to load the virtualization driver"
msgstr "Unable to load the virtualization driver: %s"
@@ -7340,22 +7673,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "floating IP allocation for instance |%s|"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Fetching image '%s' from glance"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Injecting %(injection)s into image %(img_id)s"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7375,7 +7708,7 @@ msgstr "Get console output for instance %s"
msgid "PXE deploy failed for instance %s"
msgstr "empty project id for instance %s"
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7385,28 +7718,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr "Timeout while waiting on RPC response."
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "empty project id for instance %s"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Get console output for instance %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr "Node is unknown error state."
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Unable to find host for Instance %s"
@@ -7992,7 +8325,7 @@ msgstr "Windows version: %s "
msgid "get_available_resource called"
msgstr "get_available_resource called"
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr "Updating host stats"
@@ -8169,12 +8502,12 @@ msgstr "confirm_migration called"
msgid "finish_revert_migration called"
msgstr "finish_revert_migration called"
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, fuzzy, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, fuzzy, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
@@ -8183,22 +8516,22 @@ msgstr ""
"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
"%(dest_vhd_path)s"
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, fuzzy, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "Getting info for VHD %s"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, fuzzy, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
@@ -8207,16 +8540,16 @@ msgstr ""
"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
"%(dest_vhd_path)s"
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr "finish_migration called"
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, fuzzy, python-format
msgid "Cannot find boot VHD file: %s"
msgstr "Unknown base file: %s"
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8359,12 +8692,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Using config drive"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr "Creating config drive at %(path)s"
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, fuzzy, python-format
msgid "Creating config drive failed with error: %s"
msgstr "Creating config drive at %(path)s"
@@ -8523,7 +8856,7 @@ msgstr "Detach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "Creating snapshot for instance %s"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr "Could not determine iscsi initiator name"
@@ -8557,215 +8890,215 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr "Unable to find vbd for vdi %s"
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "Connecting to libvirt: %s"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "Volume %s does not exist in Nexenta SA"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "Connection to libvirt broke"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr "Can not handle authentication request for %d credentials"
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "Connecting to libvirt: %s"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr "During wait destroy, instance disappeared."
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr "Instance destroyed successfully."
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Going to stop instances"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr "Error from libvirt during undefineFlags. Retrying with undefine"
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr "Deleting instance files %(target)s"
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr "Failed to cleanup directory %(target)s: %(e)s"
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
#, fuzzy
msgid "Could not determine fibre channel world wide node names"
msgstr "Could not determine iscsi initiator name"
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
#, fuzzy
msgid "Could not determine fibre channel world wide port names"
msgstr "Could not determine iscsi initiator name"
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr "During detach_volume, instance disappeared."
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "No networks defined."
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
#, fuzzy
msgid "During detach_interface, instance disappeared."
msgstr "During detach_volume, instance disappeared."
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "No networks defined."
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr "Instance soft rebooted successfully."
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr "Failed to soft reboot instance."
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr "Instance shutdown successfully."
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr "Instance rebooted successfully."
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr "Instance is running"
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr "Instance spawned successfully."
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr "data: %(data)r, fpath: %(fpath)r"
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr "Guest does not have a console available"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr "Path '%(path)s' supports direct I/O"
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr "Path '%(path)s' does not support direct I/O: '%(ex)s'"
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "Creating image"
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr "Using config drive"
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "Injecting %(injection)s into image %(img_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, fuzzy, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr "Ignoring error injecting data into image %(img_id)s (%(e)s)"
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
@@ -8774,20 +9107,20 @@ msgstr ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr "Config requested a custom CPU model, but no model name was provided"
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr "A CPU model name should not be set when a host CPU model is requested"
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr "CPU mode '%(mode)s' model '%(model)s' was chosen"
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
@@ -8795,7 +9128,7 @@ msgstr ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8803,12 +9136,12 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
@@ -8817,27 +9150,27 @@ msgstr ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, fuzzy, python-format
msgid "Invalid exclusion expression %r"
msgstr "Invalid reservation expiration %(expire)s."
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, fuzzy, python-format
msgid "Invalid inclusion expression %r"
msgstr "Invalid reservation expiration %(expire)s."
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
#, fuzzy
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
@@ -8846,35 +9179,35 @@ msgstr ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. This error can be safely ignored for now."
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr "libvirt version is too old (does not support getVersion)"
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Getting image size for the image %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8882,21 +9215,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8905,15 +9238,15 @@ msgstr ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr "Block migration can not be used with shared storage."
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr "Live migration can not be used without shared storage."
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
@@ -8922,7 +9255,7 @@ msgstr ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
@@ -8931,7 +9264,7 @@ msgstr ""
"Instance launched has CPU info:\n"
"%s"
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8946,7 +9279,7 @@ msgstr ""
"\n"
"Refer to %(u)s"
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8955,22 +9288,22 @@ msgstr ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr "The firewall filter for %s does not exist"
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Live Migration failure: %(e)s"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, fuzzy, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr "plug_vifs() failed %(cnt)d.Retry up to %(max_retry)d for %(hostname)s."
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, fuzzy, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
@@ -8979,38 +9312,38 @@ msgstr ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr "skipping %(path)s since it looks like volume"
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr "Getting disk size of %(i_name)s: %(e)s"
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr "Starting migrate_disk_and_power_off"
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr "Instance running successfully."
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr "Starting finish_migration"
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr "Starting finish_revert_migration"
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, fuzzy, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr "Deleting instance files %(target)s"
@@ -9045,11 +9378,11 @@ msgstr "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
msgid "iptables firewall: Setup Basic Filtering"
msgstr "iptables firewall: Setup Basic Filtering"
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr "You should specify libvirt_images_volume_group flag to use LVM images."
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr "Unknown image_type=%s"
@@ -9218,7 +9551,7 @@ msgstr ""
"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
"available, but %(size)db required by volume %(lv)s."
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -9229,17 +9562,17 @@ msgstr ""
"Virtual volume size is %(size)db, but free space on volume group is only "
"%(free_space)db."
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, fuzzy, python-format
msgid "vg %s must be LVM volume group"
msgstr "Path %s must be LVM logical volume"
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr "Path %s must be LVM logical volume"
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr "Can't retrieve root device path from instance libvirt configuration"
@@ -9329,48 +9662,48 @@ msgstr ""
"ISCSI volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, fuzzy, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr "Found iSCSI node %(mount_device)s (after %(tries)s rescans)"
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr "%s is already mounted"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "iSCSI device not found at %s"
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, fuzzy, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
"ISCSI volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, fuzzy, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr "Found iSCSI node %(mount_device)s (after %(tries)s rescans)"
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "iSCSI device not found at %s"
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, fuzzy, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
@@ -9379,7 +9712,7 @@ msgstr ""
"ISCSI volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, fuzzy, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr "Found iSCSI node %(mount_device)s (after %(tries)s rescans)"
@@ -9389,20 +9722,20 @@ msgstr "Found iSCSI node %(mount_device)s (after %(tries)s rescans)"
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9426,61 +9759,61 @@ msgstr "Writing image info file: %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr "Copying image '%s' to IVM"
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Creating logical volume"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr "Copying image to the device '%s'"
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "Filters added to instance"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr "Could not create logical volume. No space left on any volume group."
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr "Unable to get checksum"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr "Image checksums do not match"
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr "Uncompressed image file not found"
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9527,7 +9860,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9685,27 +10018,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr "marker [%s] not found"
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr "In vmwareapi:_create_session, got this exception: %s"
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr "In vmwareapi:_call_method, got this exception: %s"
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr "Task [%(task_name)s] %(task_ref)s status: success"
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr "In vmwareapi:_poll_task, Got this error %s"
@@ -9772,7 +10105,7 @@ msgstr "Glance image %s is in killed state"
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr "Glance image %(image_id)s is in unknown state - %(state)s"
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
@@ -9780,12 +10113,12 @@ msgstr ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr "Creating Port Group with name %s on the ESX host"
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr "Created Port Group with name %s on the ESX host"
@@ -10152,56 +10485,56 @@ msgstr "Creating volume: %s"
msgid "Renamed the VM from %s"
msgstr "Create volume from snapshot %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, fuzzy, python-format
msgid "Automatically hard rebooting %d"
msgstr "Automatically hard rebooting"
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr "get_diagnostics not implemented for vmwareapi"
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
#, fuzzy
msgid "Reconfiguring VM instance to set the machine id"
msgstr "Reconfiguring VM instance to attach the image disk"
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
#, fuzzy
msgid "Reconfigured VM instance to set the machine id"
msgstr "Reconfigured VM instance to attach the image disk"
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, fuzzy, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr "Reconfiguring VM instance to set the machine id with ip - %(ip_addr)s"
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, fuzzy, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr "Reconfigured VM instance to set the machine id with ip - %(ip_addr)s"
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr "Creating directory with path %s"
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr "Created directory with path %s"
@@ -10324,12 +10657,12 @@ msgstr "Failed to find volume in db"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
@@ -10338,12 +10671,12 @@ msgstr ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr "The call to %(method)s returned an error: %(e)s. args=%(args)r"
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
@@ -10352,67 +10685,67 @@ msgstr ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr "Failed to query agent version: %(resp)r"
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr "Querying agent version"
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr "Reached maximum time attempting to query agent version"
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr "Updating agent to %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr "Failed to update agent: %(resp)r"
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr "Setting admin password"
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr "Failed to exchange keys: %(resp)r"
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr "Failed to update password: %(resp)r"
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr "Injecting file path: %r"
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr "Failed to inject file: %(resp)r"
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr "Resetting network"
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "Failed to reset network: %(resp)r"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
@@ -10420,7 +10753,7 @@ msgstr ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
@@ -10428,11 +10761,15 @@ msgstr ""
"XenServer tools are present in this image but are not capable of network "
"injection"
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr "XenServer tools are not installed in this image"
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "OpenSSL error: %s"
@@ -10451,24 +10788,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr "Failure while cleaning up attached VDIs"
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr "Could not determine key: %s"
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr "Host startup on XenServer is not supported."
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr "Unable to log in to XenAPI (is the Dom0 disk full?)"
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr "Host is member of a pool, but DB says otherwise"
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Got exception: %s"
@@ -10613,74 +10950,74 @@ msgstr ""
"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
"Expected %(vlan_num)d"
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr "Created VM"
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr "VM destroyed"
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr "VM already halted, skipping shutdown..."
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
#, fuzzy
msgid "Shutting down VM (cleanly)"
msgstr "Shutting down VM"
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
#, fuzzy
msgid "Shutting down VM (hard)"
msgstr "Shutting down VM"
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "VBD not found in instance %s"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr "VBD %s already detached"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Unable to unplug VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr "Reached maximum number of retries trying to unplug VBD %s"
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Unable to destroy VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr "Unable to destroy VDI %s"
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10689,35 +11026,35 @@ msgstr ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr "SR not present and could not be introduced"
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr "block device info: %s"
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr "No primary VDI found for %(vm_ref)s"
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr "Starting snapshot for VM"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr "Destroying cached VDI '%(vdi_uuid)s'"
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
@@ -10726,17 +11063,17 @@ msgstr ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr "Unrecognized cache_images value '%s', defaulting to True"
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
@@ -10745,51 +11082,44 @@ msgstr ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr "download_vhd failed: %r"
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr "Invalid value '%s' for xenapi_torrent_images"
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "Asking xapi to fetch vhd image %(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+#: nova/virt/xenapi/vm_utils.py:1206
+#, fuzzy, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
"Image size %(size_bytes)d exceeded instance_type allowed size "
"%(allowed_size_bytes)d"
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr "Fetching image %(image_id)s, type %(image_type_str)s"
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Size for image %(image_id)s: %(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
@@ -10798,63 +11128,63 @@ msgstr ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Copying VDI %s to /boot/guest on dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Kernel/Ramdisk VDI %s destroyed"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr "Failed to fetch glance image"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr "Detected %(image_type_str)s format for image %(image_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Looking up vdi %s for PV kernel"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr "Unknown image format %(disk_image_type)s"
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s is still available"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr "Unable to parse rrd of %(vm_uuid)s"
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "Re-scanning SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr "Flag sr_matching_filter '%s' does not respect formatting convention"
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
@@ -10864,50 +11194,50 @@ msgstr ""
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr "Cannot find SR of content-type ISO"
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr "ISO: looking at SR %(sr_rec)s"
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO: not iso content"
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr "ISO: iso content_type, no 'i18n-key' key"
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr "ISO: SR MATCHing our criteria"
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr "ISO: ISO, looking to see if it is host local"
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr "ISO: PBD %(pbd_ref)s disappeared"
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr "ISO: SR with local PBD"
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
@@ -10916,22 +11246,22 @@ msgstr ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr "Unable to obtain RRD XML updates with server details: %(server)s."
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr "Invalid statistics data from Xenserver: %s"
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10940,66 +11270,66 @@ msgstr ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr "Timeout waiting for device %s to be created"
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr "Disconnecting stale VDI %s from compute domU"
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Plugging VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "Plugging VBD %s done."
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr "VBD %(vbd_ref)s plugged as %(orig_dev)s"
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "Destroying VBD for VDI %s ... "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "Destroying VBD for VDI %s done."
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "Running pygrub against %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Found Xen kernel %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "No Xen kernel found. Booting HVM."
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -11007,16 +11337,16 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "Partitions:"
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr " %(num)s: %(ptype)s %(size)d sectors"
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
@@ -11025,19 +11355,19 @@ msgstr ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "Writing partition table %s done."
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
@@ -11046,7 +11376,7 @@ msgstr ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
@@ -11055,20 +11385,20 @@ msgstr ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr "Manipulating interface files directly"
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr "Failed to mount filesystem (expected for non-linux instances): %s"
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr "This domU must be running on the host specified by xenapi_connection_url"
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr "Updating progress to %(progress)d"
@@ -11078,40 +11408,40 @@ msgstr "Updating progress to %(progress)d"
msgid "Importing image upload handler: %s"
msgstr "Writing image info file: %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr "Starting instance"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr "Removing kernel/ramdisk files from dom0"
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr "Block device information present: %s"
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr "Failed to spawn, rolling back"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr "Auto configuring disk, attempting to resize partition..."
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr "Starting VM"
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr "Waiting for instance state to become running"
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
@@ -11120,146 +11450,146 @@ msgstr ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr "Instance agent version: %s"
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr "Setting VCPU weight"
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr "Could not find VM with name %s"
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr "Finished snapshot and upload for VM"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr "Failed to transfer vhd to new host"
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Failed to terminate instance"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr "Resize complete"
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr "Starting halted instance found during reboot"
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr "Unable to find root VBD/VDI for VM"
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "Destroying VM"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr "Using RAW or VHD, skipping kernel and ramdisk deletion"
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr "instance has a kernel or ramdisk but not both"
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr "kernel/ramdisk files removed"
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr "Destroying VM"
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr "VM is not present, skipping destroy..."
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr "Instance is already in Rescue Mode: %s"
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "VM is not present, skipping destroy..."
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr "Automatically hard rebooting"
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr "Injecting network info to xenstore"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr "Creating vifs"
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Creating VIF for network %(network_ref)s"
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "Created VIF %(vif_ref)s, network %(network_ref)s"
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr "Injecting hostname to xenstore"
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
@@ -11268,25 +11598,25 @@ msgstr ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Bad networks format"
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr "Migrate Receive failed"
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
#, fuzzy
msgid "VM.assert_can_migrate failed"
msgstr "VM.assert_can_migratefailed"
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr "Migrate Send failed"
@@ -11368,7 +11698,7 @@ msgstr "Detach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "LPAR instance '%(instance_name)s' could not be found"
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11376,7 +11706,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "download_vhd failed: %r"
@@ -11431,25 +11761,8 @@ msgstr "status must be available"
msgid "status must be 'available'"
msgstr "status must be available"
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr "EC2APIError raised: %s"
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr "create arguments must be positive integers"
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
-#~ msgstr "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
-
diff --git a/nova/locale/es/LC_MESSAGES/nova.po b/nova/locale/es/LC_MESSAGES/nova.po
index 7bc570d1c..d0d14a442 100644
--- a/nova/locale/es/LC_MESSAGES/nova.po
+++ b/nova/locale/es/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-05-16 06:44+0000\n"
"Last-Translator: Paco Molinero <paco@byasl.com>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -163,216 +163,226 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "Volumen %(volume_id)s no está conectado con nada"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "La petición es inválida."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "Entrada invalida recibida"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Volumen inválido"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "Firma invalida para el usuario %s"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "Rango de puertos invalido %(from_port)s:%(to_port)s. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Protocolo IP invalido %(protocol)s"
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "Tipo de contenido invalido %(content_type)s."
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "Cidr %(cidr)s invalido"
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "La instacia %(instance_id)s no se esta ejecutando"
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr "La instancia %(instance_id)s no esta en modo de rescate"
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "La instancia %(instance_id)s no esta en modo de rescate"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Fallo al suspender la instancia"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Fallo al generar metadatos para la ip %s"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Fallo al suspender la instancia"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Fallo a reinicia la instancia"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Fallo a reinicia la instancia"
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "Fallo a reinicia la instancia"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Fallo a reinicia la instancia"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "El servicio no esta disponible en este momento"
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "El servicio de computo no esta disponible en este momento"
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
"Incapaz de emigrar la instancia %(instance_id)s al actual anfitrion "
"(%(host)s)"
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "Informacion del CPU inaceptable"
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s no es una direccion IP v4/6 valida"
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -380,86 +390,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "Formato de disco %(disk_format)s no es aceptable"
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr "La imagen %(image_id)s es inaceptable: %(reason)s"
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "Cidr %(cidr)s invalido"
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "instancia %s: rescatada"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -467,1042 +477,1028 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
"El punto de montaje %(mountpoint)s esta unido a la instancia "
"%(instance_name)s"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "el grupo %s ya existe"
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "configurando la red del host"
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, fuzzy, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:787
+#: nova/exception.py:798
#, fuzzy, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "Tipo de contenido invalido %(content_type)s."
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "el grupo de volumenes %s no existe"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:855
+#: nova/exception.py:866
#, fuzzy, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
-msgstr ""
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "el grupo %s ya existe"
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "el grupo %s ya existe"
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "el grupo %s ya existe"
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "No se puede unir la imagen con el loopback: %s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "No se puede unir la imagen con el loopback: %s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "La instancia %(instance_id)s no esta en modo de rescate"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "La instancia %(instance_id)s no esta en modo de rescate"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "el grupo %s ya existe"
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1229
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-#, fuzzy
-msgid "Failed to get nw_info"
-msgstr "Fallo al generar metadatos para la ip %s"
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1241
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1245
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1249
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1254
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1259
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Conjunto completo de opciones (FLAGS):"
-
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
+#: nova/notifications.py:232
+#, fuzzy
+msgid "Failed to get nw_info"
+msgstr "Fallo al generar metadatos para la ip %s"
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "configurando la red del host"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Se detuvo un servicio sin entrada en la base de datos"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "Depuración de la devolución de llamada: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "No se encuentra la dirección del enlace local.:%s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "No se pudo obtener enlace de la ip local de %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "backend inválido: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1512,17 +1508,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1726,7 +1722,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr "Ha sucedido un error desconocido. Por favor repite el intento de nuevo."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1748,6 +1744,7 @@ msgstr "Creando par de claves %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1823,172 +1820,172 @@ msgid "Detach Volume Failed."
msgstr "Desasociar volumen %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "atributo no soportado: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Asignar dirección"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Liberar dirección %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Desasociar dirección %s"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Desasociar dirección %s"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Desasociar dirección %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Reiniciar instancia %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "Des-registrando la imagen %s"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "usuario o grupo no especificado"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "sólo el grupo \"all\" está soportado"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "operation_type debe ser añadir o eliminar"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "Actualizando imagen %s públicamente"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "instancia %s: rescatada"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
#, fuzzy
msgid "Invalid CIDR"
msgstr "Cidr %(cidr)s invalido"
@@ -2039,37 +2036,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Fallo al generar metadatos para la ip %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Capturado error: %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "Obtenida excepción %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2094,6 +2131,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2143,21 +2181,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2168,6 +2210,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2187,12 +2230,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2237,7 +2280,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2252,20 +2295,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Llanado al adquiridor %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2337,10 +2383,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2367,222 +2415,297 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Vamos a ejecutar %s insntacias..."
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "La instacia %(instance_id)s no esta suspendida"
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Punto de montaje no puede ser traducido: %s"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Punto de montaje no puede ser traducido: %s"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "La instacia %(instance_id)s no esta suspendida"
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "instancia %s: rescatada"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Fallo a reinicia la instancia"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2756,28 +2879,33 @@ msgstr "Iniciando interfaz VLAN %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "La instacia %(instance_id)s no esta suspendida"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2872,14 +3000,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "configurando la red del host"
@@ -2928,7 +3056,7 @@ msgstr "el grupo %s ya existe"
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3058,11 +3186,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr "Firma invalida para el usuario %s"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3176,16 +3299,16 @@ msgstr ""
msgid "Create networks failed"
msgstr "configurando la red del host"
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3195,7 +3318,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3213,16 +3336,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3236,12 +3359,12 @@ msgstr "Reiniciar instancia %r"
msgid "stop instance"
msgstr "Reiniciar instancia %r"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "acción: %s"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3290,16 +3413,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "Obtenida excepción %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Liberar dirección %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Liberar dirección %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3309,124 +3461,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "no hay método para el mensaje: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "no hay método para el mensaje: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3820,251 +4005,267 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
#, fuzzy
msgid "Cannot run any more instances of this type."
msgstr ""
"Quota de instancias superada. Sólo puedes ejecutar %s instancias más de "
"este tipo."
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
"Quota de instancias superada. Sólo puedes ejecutar %s instancias más de "
"este tipo."
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Imposible adjuntar volumen a la instancia %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Comenzando snapshot para la VM %s"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "Crear Grupo de Seguridad %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Imposible destruir VBD %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Imposible destruir VBD %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "Revocar ingreso al grupo de seguridad %s"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Borrar grupo de seguridad %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Autorizar ingreso al grupo de seguridad %s"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revocar ingreso al grupo de seguridad %s"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4168,19 +4369,19 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
@@ -4189,648 +4390,644 @@ msgstr ""
"Incapaz de emigrar la instancia %(instance_id)s al actual anfitrion "
"(%(host)s)"
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Fallo a reinicia la instancia"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Fallo al suspender la instancia"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Sucedió un error inexperado: %s"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Capturado error: %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "configurando la red del host"
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Reiniciando instancia %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Desasociar volumen %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Reiniciando instancia %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Ejecutando instancias: %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instancia %s: reiniciada"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "instancia %s: creando snapshot"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Fallo al suspender la instancia"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Capturado error: %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Tipo de instancia inválido %(instance_type)s."
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "instancia %s: creando snapshot"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instancia %s: obteniendo los diagnosticos"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "configurando la red del host"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
#, fuzzy
msgid "Inject network info"
msgstr "configurando la red del host"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Obtener salida de la consola para la instancia %s"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Volume_separado: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Desvinculando volumen de instancia desconocida %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Volume_separado: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "instancia %s: arrancada"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Fallo al generar metadatos para la ip %s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Borrando usuario %s"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instancia %s: arrancada"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Borrando usuario %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "Tipo de instancia inválido %(instance_type)s."
@@ -4944,18 +5141,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5035,56 +5232,72 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Fallo a reinicia la instancia"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Fallo a reinicia la instancia"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "instancia %s: rescatada"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "instancia %s: rescatada"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "instancia %s: rescatada"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "instancia %s: rescatada"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "instancia %s: rescatada"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5101,56 +5314,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5186,32 +5403,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5230,16 +5452,20 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Fallo a reinicia la instancia"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5389,67 +5615,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "El pid %d está pasado, relanzando dnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Excepción al recargar la configuración de dnsmasq: %s"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "El pid %d está pasado, relanzando dnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "Matando radvd lanzado %s"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d corrupto, relanzando radvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "backend inválido: %s"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Iniciando interfaz VLAN %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Iniciando interfaz puente para %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Fallo al suspender la instancia"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Iniciando interfaz puente para %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Des-registrando la imagen %s"
@@ -5611,80 +5837,79 @@ msgstr "recibido %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "Tipo de instancia inválido %(instance_type)s."
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "instancia %s: arrancada"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "configurando la red del host"
@@ -5694,68 +5919,73 @@ msgstr "configurando la red del host"
msgid "Quantum Error creating security group %s"
msgstr "Borrar grupo de seguridad %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Borrar grupo de seguridad %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Borrar grupo de seguridad %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Capturado error: %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Borrar grupo de seguridad %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Revocar ingreso al grupo de seguridad %s"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Borrar grupo de seguridad %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Capturado error: %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "Autorizar ingreso al grupo de seguridad %s"
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5767,6 +5997,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Esta regla ya existe en el grupo %s"
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5802,17 +6051,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "recibido %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5909,21 +6158,78 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Conjunto completo de opciones (FLAGS):"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, fuzzy, python-format
+msgid "Starting %d workers"
+msgstr "configurando la red del host"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr "excepción DB empaquetada."
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6098,18 +6404,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6138,44 +6449,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6442,38 +6753,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6547,10 +6858,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6558,6 +6876,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6593,14 +6916,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6670,46 +6993,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Recuperada la conexión al servidor de modelos."
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "el servidor de modelos se ha ido"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6748,12 +7071,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6798,44 +7121,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "configurando la red del host"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6848,17 +7133,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6867,7 +7155,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "Ejecutando instancias: %s"
@@ -6884,25 +7172,32 @@ msgstr "Después de terminar las instancias: %s"
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6912,22 +7207,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6989,30 +7284,69 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "configurando la red del host"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7171,22 +7505,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Creando una instancia raw"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7206,7 +7540,7 @@ msgstr "Obtener salida de la consola para la instancia %s"
msgid "PXE deploy failed for instance %s"
msgstr "Tipo de instancia inválido %(instance_type)s."
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7216,28 +7550,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "Tipo de instancia inválido %(instance_type)s."
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Obtener salida de la consola para la instancia %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Tipo de instancia inválido %(instance_type)s."
@@ -7815,7 +8149,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7988,50 +8322,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "configurando la red del host"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8171,12 +8505,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Se va a iniciar la finalización de las instancias"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8342,7 +8676,7 @@ msgstr "Volume_separado: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "Creando una instancia raw"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8376,239 +8710,239 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "Conectando a libvirt: %s"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "el grupo de volumenes %s no existe"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "Conexión a libvirt rota"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "Conectando a libvirt: %s"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Vamos a ejecutar %s insntacias..."
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "instancia %s: reiniciada"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Fallo a reinicia la instancia"
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "El usuario no tiene privilegios de administrador"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "Pidiendo xapi a subir %(vdi_uuids)s como ID %(image_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8616,73 +8950,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Fallo al generar metadatos para la ip %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8690,50 +9024,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8743,67 +9077,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Fallo de autenticación: %s"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8836,11 +9170,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -9001,7 +9335,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -9009,17 +9343,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9107,52 +9441,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "el grupo %s ya existe"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9162,20 +9496,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9199,62 +9533,62 @@ msgstr "Iniciando interfaz puente para %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Imposible encontrar volumen %s"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "Fallo a reinicia la instancia"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Imposible desasociar volumen %s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9301,7 +9635,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9453,27 +9787,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9539,18 +9873,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9889,54 +10223,54 @@ msgstr "Borrando usuario %s"
msgid "Renamed the VM from %s"
msgstr "Imposible encontrar volumen %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -10063,107 +10397,111 @@ msgstr ""
"El punto de montaje %(mountpoint)s se desligó de la instancia "
"%(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "Llanado al adquiridor %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "Fallo al generar metadatos para la ip %s"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10182,24 +10520,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Obtenida excepción %s"
@@ -10338,72 +10676,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "VBD no encontrado en la instancia %s"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "el grupo %s ya existe"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Imposible desconectar VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Imposible destruir VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "Creado el VBD %(vbd_ref)s para VM %(vm_ref)s, VDI %(vdi_ref)s"
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "Creado el VBD %(vbd_ref)s para VM %(vm_ref)s, VDI %(vdi_ref)s"
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10412,304 +10750,297 @@ msgstr ""
"VDI creado %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) "
"sobre %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "Comenzando snapshot para la VM %s"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "Pidiendo xapi a subir %(vdi_uuids)s como ID %(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Tamaño para imagen %(image)s:%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Copiando VDI %s a /boot/guest on dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Kernel/Ramdisk VDI %s destruído"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "Fallo a reinicia la instancia"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Buscando vid %s para el kernel PV"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s está todavía disponible"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "Re-escaneando SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s tiene origen en %(parent_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "Ejecutando pygrub contra %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Kernel Xen Encontrado %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "Kernel Xen no encontrado. Reiniciando HVM"
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10717,62 +11048,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10782,211 +11113,211 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr "Iniciando interfaz puente para %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Creando una instancia raw"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Fallo al suspender la instancia"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Finalizado el snapshot y la subida de la VM %s"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Fallo a reinicia la instancia"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "configurando la red del host"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Creando VIF para VM %(vm_ref)s, red %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "Creando VIF para VM %(vm_ref)s, red %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -11067,7 +11398,7 @@ msgstr "Volume_separado: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "La instacia %(instance_id)s no esta suspendida"
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11075,7 +11406,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "No encontrado: %s"
@@ -11128,67 +11459,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/fi_FI/LC_MESSAGES/nova.po b/nova/locale/fi_FI/LC_MESSAGES/nova.po
index c420040ca..649e4b49c 100644
--- a/nova/locale/fi_FI/LC_MESSAGES/nova.po
+++ b/nova/locale/fi_FI/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nova\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2013-05-18 19:07+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Finnish (Finland) "
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,211 +157,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -369,85 +379,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1037 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1495,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1708,7 +1705,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,6 +1727,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1804,169 +1802,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2015,37 +2013,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2070,6 +2108,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2119,21 +2158,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2144,6 +2187,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2163,12 +2207,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2213,7 +2257,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2228,20 +2272,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2313,10 +2360,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2343,217 +2392,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2724,28 +2846,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2837,14 +2964,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2892,7 +3019,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3020,11 +3147,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3135,16 +3257,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3154,7 +3276,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3171,16 +3293,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3192,11 +3314,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3245,16 +3367,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3264,124 +3415,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3766,238 +3949,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4100,650 +4299,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4857,18 +5051,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4946,54 +5140,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5010,56 +5220,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5095,32 +5309,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5139,15 +5358,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5297,67 +5520,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5518,79 +5741,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5600,65 +5822,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5670,6 +5897,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5705,17 +5951,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5812,21 +6058,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6000,18 +6302,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6040,44 +6347,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6338,38 +6645,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6441,10 +6748,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6452,6 +6766,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6487,14 +6806,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6564,46 +6883,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6642,12 +6961,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6692,43 +7011,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6741,17 +7023,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6760,7 +7045,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6777,25 +7062,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6805,22 +7097,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6882,30 +7174,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7058,22 +7388,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7093,7 +7423,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7103,28 +7433,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7699,7 +8029,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7871,50 +8201,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8051,12 +8381,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8214,7 +8544,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8248,235 +8578,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8484,73 +8814,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8558,50 +8888,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8611,67 +8941,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8704,11 +9034,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8869,7 +9199,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8877,17 +9207,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8975,52 +9305,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9030,20 +9360,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9067,60 +9397,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9166,7 +9496,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9317,27 +9647,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9403,18 +9733,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9747,54 +10077,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9915,107 +10245,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10031,24 +10365,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10185,374 +10519,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10560,62 +10887,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10625,206 +10952,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10904,7 +11231,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10912,7 +11239,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10965,3 +11292,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/fr/LC_MESSAGES/nova.po b/nova/locale/fr/LC_MESSAGES/nova.po
index e64ad0030..815b37157 100644
--- a/nova/locale/fr/LC_MESSAGES/nova.po
+++ b/nova/locale/fr/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-05-14 08:35+0000\n"
"Last-Translator: Erwan Gallen <Unknown>\n"
"Language-Team: French <fr@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -161,74 +161,84 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "Le volume %(volume_id)s n'est lié à rien"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "La paire de clés de donnée n'est pas valide"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "La requête est invalide."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "Entrée invalide reçue"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Volume invalide"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "Signature non valide pour l'utilisateur %s"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "La plage de port %(from_port)s:%(to_port)s. %(msg)s est invalide"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Le protocole IP %(protocol)s est invalide"
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "Le type de contenu %(content_type)s est invalide"
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "Le cidr %(cidr)s est invalide"
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
@@ -237,16 +247,16 @@ msgstr ""
"Impossible d'effectuer l'action '%(action)s' sur l'ensemble "
"%(aggregate_id)s. Raison: %(reason)s."
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
@@ -255,90 +265,90 @@ msgstr ""
"L'instance %(instance_uuid)s dans %(attr)s %(state)s. Impossible de "
"%(method)s pendant que l'instance est dans cet état."
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "L'instance %(instance_id)s ne fonctionne pas."
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr "L'instance %(instance_id)s n'est pas en mode secours"
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "L'instance %(instance_id)s n'est pas en mode secours"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "L'instance %(instance_id)s n'est pas suspendue"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Échec de la suspension de l'instance"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Échec de la suspension de l'instance"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Échec du redémarrage de l'instance"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Échec du redémarrage de l'instance"
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "Échec du redémarrage de l'instance"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Échec du redémarrage de l'instance"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "Le service est indisponible actuellement."
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "Le service de calcul est indisponible actuellement."
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
"Impossible de migrer l'instance (%(instance_id)s) vers l'hôte actuel "
"(%(host)s)."
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr "Le type de l'hyperviseur fourni n'est pas valide."
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
"L'instance nécessite une version plus récente de l'hyperviseur que celle "
"fournie."
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
@@ -347,31 +357,31 @@ msgstr ""
"Le chemin d'accès du disque (%(path)s) existe déjà, il n'était pas prévu"
" d'exister."
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr "Le chemin de périphérique (%(path)s) est invalide."
-#: nova/exception.py:383
+#: nova/exception.py:394
#, fuzzy, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr "Le chemin de périphérique (%(path)s) est invalide."
-#: nova/exception.py:388
+#: nova/exception.py:399
#, fuzzy, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr "Le chemin de périphérique (%(path)s) est invalide."
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "Info CPU inacceptable"
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s n'est pas une adresse IP v4/6 valide"
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
@@ -381,7 +391,7 @@ msgstr ""
" VLAN prévu est %(tag)s, mais celui qui est associé avec le groupe de "
"port est %(pgroup)s."
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -392,86 +402,86 @@ msgstr ""
"l'adaptateur physique souhaité. VSwitch est %(expected)s, mais la "
"principale association est %(actual)s."
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "Le format de disque %(disk_format)s n'est pas acceptable"
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr "L'image %(image_id)s est inacceptable: %(reason)s"
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr "L'instance %(instance_id)s est inacceptable: %(reason)s"
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr "Ec2 id %(ec2_id)s est inaccepatble."
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "Le cidr %(cidr)s est invalide"
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "instance %s: récupérée"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr "La ressource n'a pas pu être trouvée."
-#: nova/exception.py:447
+#: nova/exception.py:458
#, fuzzy, python-format
msgid "No agent-build associated with id %(id)s."
msgstr "Pas d'adresse IP fixe associée avec l'id %(id)s."
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr "Le volume %(volume_id)s n'a pas pu être trouvé."
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr "Le snapshot %(snapshot_id)s n'a pas été trouvé."
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr "Aucun id destination trouvé pour le volume %(volume_id)s."
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr "Aucun disque sur %(location)s"
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr "Impossible de trouver un gestionnaire pour le %(driver_type)s de volume."
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr "L'image href %(image_href)s est invalide."
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr "L'image %(image_id)s n'a pas été trouvée."
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -479,65 +489,65 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "Le projet %(project_id)s n'a pas été trouvé."
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr "Impossible de trouver le SR pour lire/écrire le VDI."
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "Le réseau %(network_id)s n'a pas été trouvé."
-#: nova/exception.py:498
+#: nova/exception.py:509
#, fuzzy, python-format
msgid "Network %(network_id)s is still in use."
msgstr "Le réseau %(network_id)s n'a pas été trouvé."
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr "%(req)s est requis pour créer un réseau."
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "Le réseau %(network_id)s n'a pas été trouvé."
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "Le snapshot %(snapshot_id)s n'a pas été trouvé."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr "Aucun réseau trouvé pour le pont %(bridge)s"
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr "Aucun réseau trouvé pour l'uuid %(uuid)s"
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr "Aucun réseau trouvé avec le cidr %(cidr)s."
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr "Aucun réseau trouvé pour l'instance %(instance_id)s."
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "Aucun réseau défini."
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
@@ -546,53 +556,53 @@ msgstr ""
"L'uuid réseau %(network_uuid)s n'est pas présent ou n'a pas été affecté "
"au projet %(project_id)s."
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, fuzzy, python-format
msgid "Port %(port_id)s is still in use."
msgstr "Le réseau %(network_id)s n'a pas été trouvé."
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Aucun réseau trouvé pour l'instance %(instance_id)s."
-#: nova/exception.py:551
+#: nova/exception.py:562
#, fuzzy, python-format
msgid "No free port available for instance %(instance)s."
msgstr "Aucun réseau trouvé pour l'instance %(instance_id)s."
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr "Pas d'adresse IP fixe associée avec l'id %(id)s."
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr "Pas d'IP fixe trouvée pour l'adresse %(address)s."
-#: nova/exception.py:563
+#: nova/exception.py:574
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "L'instance %(instance_id)s n'a aucunes IPs fixes"
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
"Le réseau hôte %(host)s n'a aucunes IPs fixes dans le réseau "
"%(network_id)s."
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "L'instance %(instance_id)s ne peut avoir l'IP fixe '%(ip)s'."
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
@@ -601,187 +611,187 @@ msgstr ""
"L'adresse IP fixe (%(address)s) n'existe pas dans le réseau "
"(%(network_uuid)s)."
-#: nova/exception.py:581
+#: nova/exception.py:592
#, fuzzy, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr "L'adresse IP fixe %(address)s est déjà utilisée."
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr "L'adresse IP fixe %(address)s est invalide."
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr "Aucunes IPs fixes disponibles."
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr "Aucunes IPs fixes trouvées."
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "L'IP dynamique %(address)s est associée."
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr "Aucune IP dynamique trouvée pour l'id %(id)s."
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr "L'entrée DNS %(name)s existe déjà dans le domaine %(domain)s."
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr "Aucune IP dynamique trouvée pour l'adresse %(address)s."
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr "Aucune IP dynamique trouvée pour l'hôte %(host)s."
-#: nova/exception.py:628
+#: nova/exception.py:639
#, fuzzy, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr "Aucune IP dynamique trouvée pour l'adresse %(address)s."
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "Aucune IP dynamique trouvée pour l'id %(id)s."
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr "Aucune IPs dynamiques disponibles."
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr "L'IP dynamique %(address)s est associée."
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr "L'IP dynamique %(address)s n'est pas associée."
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr "Aucunes IPs dynamiques existes."
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr "L'interface %(interface)s non trouvée."
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr "La paire de clés %(name)s est introuvable pour l'utilisateur %(user_id)s"
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr "Le certificat %(certificate_id)s non trouvé."
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "Le service %(service_id)s ne peut pas être trouvé."
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr "L'hôte %(host)s ne peut pas être trouvé."
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr "L'hôte de calcul %(host)s ne peut pas être trouvé."
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr "Impossible de trouver le binaire %(binary)s sur l'hôte %(host)s."
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr "Le quota ne peut pas être trouvé"
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr "Le quota pour le projet %(project_id)s ne peut pas être trouvé."
-#: nova/exception.py:707
+#: nova/exception.py:718
#, fuzzy, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr "La clé d'accès %(access_key)s ne peut pas être trouvée."
-#: nova/exception.py:711
+#: nova/exception.py:722
#, fuzzy, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr "Le quota pour le projet %(project_id)s ne peut pas être trouvé."
-#: nova/exception.py:715
+#: nova/exception.py:726
#, fuzzy, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr "L'utilisateur %(user_id)s n'a pas été trouvé."
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr "Groupe de sécurité %(security_group_id)s non trouvé."
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
"Groupe de sécurité %(security_group_id)s non trouvé pour le projet "
"%(project_id)s."
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr "Le groupe de sécurité avec la règle %(rule_id)s non trouvé."
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
@@ -790,7 +800,7 @@ msgstr ""
"Le groupe de sécurité %(security_group_id)s est déjà associé avec "
"l'instance %(instance_id)s"
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
@@ -799,138 +809,138 @@ msgstr ""
"Le groupe de sécurité %(security_group_id)s n'est pas associé avec "
"l'instance %(instance_id)s"
-#: nova/exception.py:746
+#: nova/exception.py:757
#, fuzzy, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr "Le groupe de sécurité avec la règle %(rule_id)s non trouvé."
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr "La migration %(migration_id)s ne peut être trouvée."
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
"Migration non trouvée pour l'instance %(instance_id)s avec le statut "
"%(status)s."
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr "La console %(console_id)s ne peut être trouvée."
-#: nova/exception.py:783
+#: nova/exception.py:794
#, fuzzy, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "La console pour l'instance %(instance_id)s ne peut être trouvée."
-#: nova/exception.py:787
+#: nova/exception.py:798
#, fuzzy, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr "La console pour l'instance %(instance_id)s ne peut être trouvée."
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "Le type de console %(console_type)s est invalide "
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr "Le type d'instance %(instance_type_id)s ne peut être trouvé."
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr "Le type d'instance avec le nom %(instance_type_name)s ne peut être trouvé."
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr "Le Flavor %(flavor_id)s ne peut être trouvé."
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "Le groupe de volume %s n'existe pas"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "Volume non trouvé pour l'instance %(instance_id)s."
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr "La plannification de filtre hôte %(filter_name)s ne peut être trouvée."
-#: nova/exception.py:850
+#: nova/exception.py:861
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
"Le volume %(volume_id)s n'a pas de métadonnée avec la clé "
"%(metadata_key)s."
-#: nova/exception.py:855
+#: nova/exception.py:866
#, fuzzy, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
@@ -939,334 +949,330 @@ msgstr ""
"Le volume %(volume_id)s n'a pas de métadonnée avec la clé "
"%(metadata_key)s."
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
-msgstr ""
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "L'IP dynamique %(address)s est associée."
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "Le type d'instance avec le nom %(instance_type_name)s ne peut être trouvé."
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "L'IP dynamique %(address)s est associée."
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "Aucunes IPs dynamiques existes."
-#: nova/exception.py:997
+#: nova/exception.py:1004
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Aucunes IPs dynamiques existes."
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "L'instance %(instance_id)s n'a pas pu être trouvée."
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "La console pour l'instance %(instance_id)s ne peut être trouvée."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Le volume %(volume_id)s n'a pas pu être trouvé."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "Le snapshot %(snapshot_id)s n'a pas été trouvé."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "L'image %(image_id)s n'a pas été trouvée."
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "Aucun noyau trouvé pour l'image %(image_id)s."
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "Aucun noyau trouvé pour l'image %(image_id)s."
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, fuzzy, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr "Aucune IP dynamique trouvée pour l'hôte %(host)s."
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "L'instance %(instance_id)s n'a pas pu être trouvée."
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Va essayer d'arrêter %s"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Va essayer d'arrêter %s"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
@@ -1275,266 +1281,256 @@ msgstr ""
"Montage du volume %(volume_id)s sur l'instance %(instance_id)s en tant "
"que %(device)s"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, fuzzy, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr "La paire de clés %(name)s est introuvable pour l'utilisateur %(user_id)s"
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, fuzzy, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "Le quota pour le projet %(project_id)s ne peut pas être trouvé."
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, fuzzy, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "Le projet %(project_id)s n'a pas été trouvé."
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "L'instance %(instance_id)s n'est pas en mode secours"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "L'instance %(instance_id)s n'est pas en mode secours"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "Le type d'instance avec le nom %(instance_type_name)s ne peut être trouvé."
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1229
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-#, fuzzy
-msgid "Failed to get nw_info"
-msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1241
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1245
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1249
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1254
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1259
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Ensemble de propriétés complet :"
-
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
+#: nova/notifications.py:232
+#, fuzzy
+msgid "Failed to get nw_info"
+msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "adresse de départ"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, fuzzy, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr "Démarrage du noeud %(topic)s (version %(vcs_string)s)"
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Service détruit sans entrée dans la base de données"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "Debug dans le rappel : %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "L'adresse du lien local n'a pas été trouvé :%s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "Impossible de trouver l'IP du lien local de %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "Backend invalide : %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1544,17 +1540,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1763,7 +1759,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr "Une erreur inopinée à eu lieu. Merci d'essayer votre requête à nouveau."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1787,6 +1783,7 @@ msgstr "Création du bi-clef %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1864,178 +1861,178 @@ msgid "Detach Volume Failed."
msgstr "Dé-montage du volume %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "attribut non reconnu : %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Allocation d'adresse"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
#, fuzzy
msgid "No more floating IPs available"
msgstr "Aucune IPs dynamiques disponibles."
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Désallocation de l'adresse %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "Association de l'adresse %(public_ip)s avec l'instance %(instance_id)s"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Désassociation de l'adresse %s"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
#, fuzzy
msgid "Floating ip is already associated."
msgstr "L'IP dynamique %(address)s est associée."
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
#, fuzzy
msgid "l3driver call to add floating ip failed."
msgstr "Aucune IPs dynamiques disponibles."
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Désassociation de l'adresse %s"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Désassociation de l'adresse %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
#, fuzzy
msgid "Floating ip is not associated."
msgstr "L'IP dynamique %(address)s n'est pas associée."
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "Début de la destruction d'instance"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Re-démarrage de l'instance %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "Dé-enregitrement de l'image %s"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "Image %(image_location)s enregistré avec l'id %(image_id)s"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "Utilisateur ou groupe non spécifié"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "Seul le group \"tous\" est supporté"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
"le type d'opération (operation_type) doit être ajout (add) ou suppression"
" (remove)"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "Mis à jour de la publication de l'image %s"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "instance %s: récupérée"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
#, fuzzy
msgid "Invalid CIDR"
msgstr "Le cidr %(cidr)s est invalide"
@@ -2086,37 +2083,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Erreur interceptée : %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "Reçu exception : %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2141,6 +2178,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2190,21 +2228,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2215,6 +2257,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2234,12 +2277,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2284,7 +2327,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2299,20 +2342,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Appel du getter %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2384,10 +2430,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2414,222 +2462,297 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Va essayer d'arrêter %s"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "L'hôte %(host)s ne peut pas être trouvé."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Le point de montage ne peut pas être traduit : %s"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Le point de montage ne peut pas être traduit : %s"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "L'instance %(instance_id)s n'a pas pu être trouvée."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "L'instance %(instance_id)s n'a pas pu être trouvée."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "instance %s: récupérée"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Échec du redémarrage de l'instance"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2803,28 +2926,33 @@ msgstr "Démarrage de l'interface VLAN %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "L'interface %(interface)s non trouvée."
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2920,14 +3048,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Le certificat %(certificate_id)s non trouvé."
@@ -2976,7 +3104,7 @@ msgstr "L'IP dynamique %(address)s n'est pas associée."
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3108,11 +3236,6 @@ msgstr "Aucunes IPs fixes trouvées."
msgid "Invalid timestamp for date %s"
msgstr "Signature non valide pour l'utilisateur %s"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3226,16 +3349,16 @@ msgstr ""
msgid "Create networks failed"
msgstr "Aucun réseau défini."
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3245,7 +3368,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "Pas assez de parametres pour contruire un règle valide."
@@ -3264,16 +3387,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr "Le groupe de sécurité avec la règle %(rule_id)s non trouvé."
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3287,12 +3410,12 @@ msgstr "Re-démarrage de l'instance %r"
msgid "stop instance"
msgstr "Re-démarrage de l'instance %r"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "action: %s"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3341,16 +3464,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "Reçu exception : %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Désallocation de l'adresse %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Désallocation de l'adresse %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3360,126 +3512,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "Pas de méthode pour le message : %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "Pas de méthode pour le message : %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr ""
-"Migration non trouvée pour l'instance %(instance_id)s avec le statut "
-"%(status)s."
+msgid "Got update for instance: %(instance)s"
+msgstr "Volume non trouvé pour l'instance %(instance_id)s."
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Volume non trouvé pour l'instance %(instance_id)s."
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "Volume non trouvé pour l'instance %(instance_id)s."
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3875,251 +4058,267 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
#, fuzzy
msgid "Cannot run any more instances of this type."
msgstr ""
"Quota d'instances dépassé. Vous ne pouvez éxécuter que %s instances de ce"
" type de plus."
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
"Quota d'instances dépassé. Vous ne pouvez éxécuter que %s instances de ce"
" type de plus."
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Impossible d'attacher le volume à l'instance %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "Démarrage de %s instances..."
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Début de la destruction d'instance"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "Le type d'instance %(instance_type_id)s ne peut être trouvé."
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Début de la destruction d'instance"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "Début de création d'instantané (snapshot) pour la VM %s"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "Création du groupe de sécurité %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Impossible de supprimer le VBD %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Impossible de supprimer le VBD %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "Révocation de groupe de sécurité %s"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Suppression du groupe de sécurité %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorisation du groupe de sécurité %s"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Révocation de groupe de sécurité %s"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4223,19 +4422,19 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
@@ -4244,651 +4443,647 @@ msgstr ""
"Impossible de migrer l'instance (%(instance_id)s) vers l'hôte actuel "
"(%(host)s)."
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Échec du redémarrage de l'instance"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Échec de la suspension de l'instance"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "\"Erreur inopinée\" remontée : %s"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Erreur interceptée : %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "Aucune IP dynamique trouvée pour l'id %(id)s."
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Va essayer d'arrêter %s"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Redémarrage de l'instance %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Dé-montage du volume %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Redémarrage de l'instance %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Instance actives : %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "instance %s: re-démarrée"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "instance %s: création d'un instantané (snapshot)"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "Injection du chemin d'accès : '%s'"
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Échec de la suspension de l'instance"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Erreur interceptée : %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
#, fuzzy
msgid "Unrescuing"
msgstr "instance %s: dé-récupération"
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "L'instance de type %(instance_type)s est invalide."
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "instance %s: création d'un instantané (snapshot)"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instance %s: récupération des diagnostiques"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "réglage de l'hôte réseau"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
#, fuzzy
msgid "Inject network info"
msgstr "réglage de l'hôte réseau"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Récupération de la sortie de la console de l'instance %s"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
#, fuzzy
msgid "Getting vnc console"
msgstr "Ajout de console"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "Ajout de console"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Démontage de volume d'une instance inconnue %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Le réseau %(network_id)s n'a pas été trouvé."
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "L'hôte %(host)s ne peut pas être trouvé."
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "L'instance %(instance_id)s n'a pas pu être trouvée."
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Suppression de l'utilisateur %s"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "instance %s: a démarrée"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Suppression de l'utilisateur %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "L'instance de type %(instance_type)s est invalide."
@@ -5003,18 +5198,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5094,56 +5289,72 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Échec du redémarrage de l'instance"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Échec du redémarrage de l'instance"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "instance %s: récupérée"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "instance %s: récupérée"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "instance %s: récupérée"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "instance %s: récupérée"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "instance %s: récupérée"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5160,56 +5371,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5245,32 +5460,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "Impossible de déchiffrer la clef privée : %s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "Impossible de déchiffrer le vecteur d'initialisation : %s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "Impossible de déchiffrer le fichier image %(image_file)s: %(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5289,16 +5509,20 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Échec du redémarrage de l'instance"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, fuzzy, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "Association de l'adresse %(public_ip)s avec l'instance %(instance_id)s"
@@ -5449,67 +5673,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d est dépassé, re-démarrage de dnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "Hupping dnsmasq à renvoyé %s"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d est dépassé, re-démarrage de dnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "La destruction de radvd à renvoyé %s"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d est dépassé, re-démarrage radvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Backend invalide : %s"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Démarrage de l'interface VLAN %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Démarrage de l'interface de Bridge %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, fuzzy, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr "L'interface %(interface)s non trouvée."
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Échec de la suspension de l'instance"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Démarrage de l'interface de Bridge %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Erreur au démarrage xvp : %s"
@@ -5672,80 +5896,79 @@ msgstr "%s reçu"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "L'instance de type %(instance_type)s est invalide."
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Aucuns types d'instance trouvés."
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "Aucune IP dynamique trouvée pour l'id %(id)s."
@@ -5755,70 +5978,75 @@ msgstr "Aucune IP dynamique trouvée pour l'id %(id)s."
msgid "Quantum Error creating security group %s"
msgstr "Suppression du groupe de sécurité %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Suppression du groupe de sécurité %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Suppression du groupe de sécurité %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Erreur interceptée : %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Suppression du groupe de sécurité %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Révocation de groupe de sécurité %s"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Suppression du groupe de sécurité %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Erreur interceptée : %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "Le groupe de sécurité avec la règle %(rule_id)s non trouvé."
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, fuzzy, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
"Groupe de sécurité %(security_group_id)s non trouvé pour le projet "
"%(project_id)s."
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5832,6 +6060,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Cette règle existe déjà dans le groupe %s"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "Erreur au démarrage xvp : %s"
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, fuzzy, python-format
msgid "Original exception being dropped: %s"
@@ -5867,17 +6114,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "%s reçu"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5974,21 +6221,78 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Ensemble de propriétés complet :"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, fuzzy, python-format
+msgid "Starting %d workers"
+msgstr "adresse de départ"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6163,18 +6467,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "Renvoi de l'exception %s à l'appelant"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6203,44 +6512,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6507,38 +6816,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Volume non trouvé pour l'instance %(instance_id)s."
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6612,10 +6921,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6623,6 +6939,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6658,14 +6979,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6735,46 +7056,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Récupération du modelle de connexion serveur terminée!"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "Le modèle de serveur à disparu"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6813,12 +7134,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6863,44 +7184,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "L'interface %(interface)s non trouvée."
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6913,17 +7196,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6932,7 +7218,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "Instance actives : %s"
@@ -6949,25 +7235,32 @@ msgstr "Après l'arrêt d'instances : %s"
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6977,22 +7270,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -7054,30 +7347,69 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "L'interface %(interface)s non trouvée."
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7236,22 +7568,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Début de la destruction d'instance"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Début de la destruction d'instance"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Injection du chemin d'accès : '%s'"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7271,7 +7603,7 @@ msgstr "Récupération de la sortie de la console de l'instance %s"
msgid "PXE deploy failed for instance %s"
msgstr "L'instance de type %(instance_type)s est invalide."
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7281,28 +7613,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "L'instance de type %(instance_type)s est invalide."
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Récupération de la sortie de la console de l'instance %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "L'instance de type %(instance_type)s est invalide."
@@ -7885,7 +8217,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -8058,50 +8390,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "Aucune IP dynamique trouvée pour l'id %(id)s."
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8241,12 +8573,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Début de la destruction d'instance"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, fuzzy, python-format
msgid "Creating config drive at %(path)s"
msgstr "Injection du chemin d'accès : '%s'"
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, fuzzy, python-format
msgid "Creating config drive failed with error: %s"
msgstr "Injection du chemin d'accès : '%s'"
@@ -8412,7 +8744,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "Création d'une instance raw"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8446,243 +8778,243 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "Connexion à libvirt: %s"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "Le groupe de volume %s n'existe pas"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "Connexion à libvirt interrompue"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "Connexion à libvirt: %s"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Va essayer d'arrêter %s"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Aucun réseau défini."
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Aucun réseau défini."
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "instance %s: re-démarrée"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Échec du redémarrage de l'instance"
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr "data: %(data)r, fpath: %(fpath)r"
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "L’utilisateur n'a pas les privilèges administrateur"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "Demande de chargement à xapi de %(vdi_uuids)s en tant qu'ID %(image_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, fuzzy, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
"instance %(inst_name)s : l'erreur d'injection de donné dans l'image "
"%(img_id)s (%(e)s) a été ignorée"
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8690,73 +9022,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8764,50 +9096,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8817,67 +9149,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Echec d'authentification : %s"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8910,11 +9242,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -9075,7 +9407,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -9083,17 +9415,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9181,52 +9513,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "le groupe %s existe déjà"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9236,20 +9568,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9273,62 +9605,62 @@ msgstr "Démarrage de l'interface de Bridge %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Impossible de trouver le volume %s"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "Échec du redémarrage de l'instance"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Impossible de détacher le volume %s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9375,7 +9707,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9527,27 +9859,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9613,18 +9945,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9964,54 +10296,54 @@ msgstr "Suppression de l'utilisateur %s"
msgid "Renamed the VM from %s"
msgstr "Impossible de trouver le volume %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -10138,107 +10470,111 @@ msgstr ""
"Le point de montage %(mountpoint)s à été détaché de l'instance "
"%(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "Appel du getter %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, fuzzy, python-format
msgid "Injecting file path: %r"
msgstr "Injection du chemin d'accès : '%s'"
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "Impossible de récupérer les méta-donnérs pour l'IP : %s"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "Erreur OpenSSL : %s"
@@ -10258,24 +10594,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "Impossible de déchiffrer la clef privée : %s"
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "Reçu exception : %s"
@@ -10414,72 +10750,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "VBD non trouvé dans l'instance %s"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "le groupe %s existe déjà"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Impossible de deconnecter le VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Impossible de supprimer le VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "VBD créé %(vbd_ref)s pour VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "VBD créé %(vbd_ref)s pour VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10488,239 +10824,232 @@ msgstr ""
"VDI créé %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) on"
" %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "Le quota ne peut pas être trouvé"
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, fuzzy, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr "Aucun id destination trouvé pour le volume %(volume_id)s."
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "Début de création d'instantané (snapshot) pour la VM %s"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "Demande de chargement à xapi de %(vdi_uuids)s en tant qu'ID %(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, fuzzy, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr "Image %(image_location)s enregistré avec l'id %(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Taille de l'image %(image)s:%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Copie de VDI %s vers /boot/guest sur dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Noyau/Ramdisk VDI %s détruit"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "Échec du redémarrage de l'instance"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Recherche du VDI %s pour le PV kernel"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "Le VDI %s est toujours disponible"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "Re-parcours de SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s à pour parent %(parent_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
@@ -10729,66 +11058,66 @@ msgstr ""
"L'UUID parent %(parent_uuid)s ne correspond pas au parent originel "
"%(original_parent_uuid)s, attente de coalesence..."
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Connexion de VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "Connexion de VBD %s terminée."
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "Destruction de VBD pour la VDI %s ... "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "Destruction de VBD pour la VDI %s terminée."
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "Exécution de pygrub sur %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Kernel Xen %s trouvé"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "Pas de kernel Xen trouvé. Démarrage en HVM."
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10796,62 +11125,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "Ecriture de la table de partitionnement %s terminée."
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10861,214 +11190,214 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr "Démarrage de l'interface de Bridge %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Création d'une instance raw"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Échec de la suspension de l'instance"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
#, fuzzy
msgid "Starting VM"
msgstr "Re-démarrage xvp"
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Fin de l'instantané et du chargement de VM %s"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Échec du redémarrage de l'instance"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "Re-démarrage xvp"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr "Fichiers noyau/ramdisk supprimés"
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
#, fuzzy
msgid "Destroying VM"
msgstr "Re-démarrage xvp"
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "réglage de l'hôte réseau"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Création du VIF pour la VM %(vm_ref)s, réseau %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "Création du VIF pour la VM %(vm_ref)s, réseau %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -11149,7 +11478,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "L'instance %(instance_id)s n'a pas pu être trouvée."
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11157,7 +11486,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "\"Non trouvé\" remonté : %s"
@@ -11210,67 +11539,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/hr/LC_MESSAGES/nova.po b/nova/locale/hr/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..5e6f97f58
--- /dev/null
+++ b/nova/locale/hr/LC_MESSAGES/nova.po
@@ -0,0 +1,11300 @@
+# Croatian translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Croatian "
+"(http://www.transifex.com/projects/p/openstack/language/hr/)\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/hu/LC_MESSAGES/nova.po b/nova/locale/hu/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..bc4fbaced
--- /dev/null
+++ b/nova/locale/hu/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Hungarian translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Hungarian "
+"(http://www.transifex.com/projects/p/openstack/language/hu/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/id/LC_MESSAGES/nova.po b/nova/locale/id/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..4cf3f9a86
--- /dev/null
+++ b/nova/locale/id/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Indonesian translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Indonesian "
+"(http://www.transifex.com/projects/p/openstack/language/id/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/it/LC_MESSAGES/nova.po b/nova/locale/it/LC_MESSAGES/nova.po
index 84eee2587..46b95fd33 100644
--- a/nova/locale/it/LC_MESSAGES/nova.po
+++ b/nova/locale/it/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-04-01 18:59+0000\n"
"Last-Translator: simone.sandri <lexluxsox@hotmail.it>\n"
"Language-Team: Italian <it@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,213 +157,223 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "La richiesta non è valida."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "E' stato ricevuto un input non valido"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Volume non valido"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Impossibile sospendere l'istanza"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Impossibile sospendere l'istanza"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Impossibile sospendere l'istanza"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Impossibile riavviare l'istanza"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -371,86 +381,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "E' stato ricevuto un input non valido"
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "istanza %s: ripristino"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -458,1039 +468,1025 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Mountpoint %(mountpoint)s montato all'istanza %(instance_name)s"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "nessun metodo per il messaggio: %s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "nessun metodo per il messaggio: %s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/notifications.py:232
-#, fuzzy
-msgid "Failed to get nw_info"
-msgstr "Impossibile riavviare l'istanza"
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1241
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1245
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1249
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1254
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1259
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Insieme di FLAGS:"
-
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
+#: nova/notifications.py:232
+#, fuzzy
+msgid "Failed to get nw_info"
+msgstr "Impossibile riavviare l'istanza"
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Servizio terminato che non ha entry nel database"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "debug in callback: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1500,17 +1496,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1713,7 +1709,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1735,6 +1731,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1809,170 +1806,170 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "istanza %s: ripristino"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2022,37 +2019,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Impossibile sospendere l'istanza"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2077,6 +2114,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2126,21 +2164,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2151,6 +2193,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2170,12 +2213,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2220,7 +2263,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2235,20 +2278,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Dichiarando la coda %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2320,10 +2366,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2350,218 +2398,293 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "istanza %s: creazione snapshot in corso"
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Volume non valido"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2734,28 +2857,33 @@ msgstr "Avviando l'interfaccia VLAN %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "istanza %s: sospensione in corso"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2849,14 +2977,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "istanza %s: sospensione in corso"
@@ -2905,7 +3033,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3033,11 +3161,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3148,16 +3271,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3167,7 +3290,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3184,16 +3307,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3207,12 +3330,12 @@ msgstr "Impossibile riavviare l'istanza"
msgid "stop instance"
msgstr "Impossibile sospendere l'istanza"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "E' stato riscontrato un errore sconosciuto"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3261,16 +3384,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3280,124 +3432,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "nessun metodo per il messaggio: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "nessun metodo per il messaggio: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "istanza %s: creazione snapshot in corso"
+msgid "Got update for instance: %(instance)s"
+msgstr "Mountpoint %(mountpoint)s montato all'istanza %(instance_name)s"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Mountpoint %(mountpoint)s montato all'istanza %(instance_name)s"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3786,242 +3971,258 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Impossibile localizzare il volume %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Impossibile localizzare il volume %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4125,662 +4326,657 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Impossibile sospendere l'istanza"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Riavviando l'istanza %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Impossibile smontare il volume %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Riavviando l'istanza %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Impossibile sospendere l'istanza"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "istanza %s: ricezione diagnostiche"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "istanza %s: ripristino rete"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "istanza %s: sospensione in corso"
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Impossibile riavviare l'istanza"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "istanza %s: creazione snapshot in corso"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4894,18 +5090,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4985,56 +5181,72 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Impossibile riavviare l'istanza"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Impossibile riavviare l'istanza"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5051,56 +5263,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5136,32 +5352,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5180,16 +5401,20 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Impossibile riavviare l'istanza"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5339,67 +5564,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Avviando l'interfaccia VLAN %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Avviando l'interfaccia Bridge per %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Impossibile sospendere l'istanza"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Avviando l'interfaccia Bridge per %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5561,80 +5786,79 @@ msgstr "ricevuto %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "istanza %s: sospensione in corso"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5644,65 +5868,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5714,6 +5943,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5749,17 +5997,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "ricevuto %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5856,21 +6104,78 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Insieme di FLAGS:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6045,18 +6350,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "Sollevando eccezione %s al chiamante"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6085,44 +6395,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6387,38 +6697,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Mountpoint %(mountpoint)s montato all'istanza %(instance_name)s"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6490,10 +6800,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6501,6 +6818,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6536,14 +6858,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6613,46 +6935,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Connessione al model server ripristinata!"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "model server é scomparso"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6691,12 +7013,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6741,43 +7063,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6790,17 +7075,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6809,7 +7097,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6826,25 +7114,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6854,22 +7149,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6931,30 +7226,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7113,22 +7446,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7148,7 +7481,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7158,28 +7491,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Impossibile riavviare l'istanza"
@@ -7756,7 +8089,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7928,50 +8261,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8111,12 +8444,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8282,7 +8615,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "Impossibile montare il volume all'istanza %s"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8316,239 +8649,239 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Impossibile riavviare l'istanza"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "volume %s: creato con successo"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Impossibile riavviare l'istanza"
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "L'utente non ha i privilegi dell'amministratore"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8556,73 +8889,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Impossibile smontare il volume %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8630,50 +8963,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8683,67 +9016,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8776,11 +9109,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8941,7 +9274,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8949,17 +9282,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9047,52 +9380,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9102,20 +9435,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9139,62 +9472,62 @@ msgstr "Avviando l'interfaccia Bridge per %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Impossibile localizzare il volume %s"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "Impossibile riavviare l'istanza"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Impossibile smontare il volume %s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9240,7 +9573,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9391,27 +9724,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9477,18 +9810,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9822,54 +10155,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr "Impossibile localizzare il volume %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9992,107 +10325,111 @@ msgstr "Impossibile smontare il volume %s"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "Mountpoint %(mountpoint)s smontato dall'istanza %(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10108,24 +10445,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10262,375 +10599,368 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "nessun metodo per il messaggio: %s"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Kernel/Ramdisk VDI %s distrutti"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "Impossibile riavviare l'istanza"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Cercando vdi %s per kernel PV"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10638,62 +10968,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10703,209 +11033,209 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr "Avviando l'interfaccia Bridge per %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Riavviando l'istanza %s"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Impossibile sospendere l'istanza"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Impossibile riavviare l'istanza"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10986,7 +11316,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10994,7 +11324,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -11047,67 +11377,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/it_IT/LC_MESSAGES/nova.po b/nova/locale/it_IT/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..35d4f2432
--- /dev/null
+++ b/nova/locale/it_IT/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Italian (Italy) translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Italian (Italy) "
+"(http://www.transifex.com/projects/p/openstack/language/it_IT/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/ja/LC_MESSAGES/nova.po b/nova/locale/ja/LC_MESSAGES/nova.po
index e1a6b4777..d28aaf550 100644
--- a/nova/locale/ja/LC_MESSAGES/nova.po
+++ b/nova/locale/ja/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-08-23 11:22+0000\n"
"Last-Translator: Thierry Carrez <thierry.carrez+lp@gmail.com>\n"
"Language-Team: \n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,214 +157,224 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "Invalid signature: ユーザ %s ã®ç½²åãŒä¸æ­£ã§ã™ã€‚"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -372,86 +382,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "インスタンス %s: rescued"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -459,1040 +469,1026 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "インスタンス %(instance_name)s ã«ãƒžã‚¦ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒˆ %(mountpoint)s を接続(attach)ã—ã¾ã—ãŸ"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "インスタンス %(instance_name)s: インスタンスファイル群 %(target)s を削除ã—ã¦ã„ã¾ã™"
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, fuzzy, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr "インスタンス %(instance_id)s ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ %(public_ip)s を割り当ã¦"
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "ボリュームグループ%sãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
-msgstr ""
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "イメージをループãƒãƒƒã‚¯ %s ã«ã‚¢ã‚¿ãƒƒãƒã§ãã¾ã›ã‚“。"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "イメージをループãƒãƒƒã‚¯ %s ã«ã‚¢ã‚¿ãƒƒãƒã§ãã¾ã›ã‚“。"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "ボリューム %(volume_id)s をインスタンス %(instance_id)s ã®ãƒ‡ãƒã‚¤ã‚¹ %(device)s ã«æŽ¥ç¶š"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1229
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-#, fuzzy
-msgid "Failed to get nw_info"
-msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1241
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1245
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1249
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1254
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1259
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "FLAGSã®ä¸€è¦§:"
-
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
+#: nova/notifications.py:232
+#, fuzzy
+msgid "Failed to get nw_info"
+msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "開始アドレス"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, fuzzy, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr "%(topic)s ノードを開始ã—ã¦ã„ã¾ã™ (ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %(vcs_string)s)"
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "データベースã«ã‚¨ãƒ³ãƒˆãƒªã®å­˜åœ¨ã—ãªã„サービスを終了ã—ã¾ã™ã€‚"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "コールãƒãƒƒã‚¯ä¸­ã®ãƒ‡ãƒãƒƒã‚°: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "リンクローカルアドレスãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "%(interface)s ã®ãƒ­ãƒ¼ã‚«ãƒ«IPアドレスã®ãƒªãƒ³ã‚¯ãŒå–å¾—ã§ãã¾ã›ã‚“:%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "䏿­£ãªãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã§ã™: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1502,17 +1498,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1716,7 +1712,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr "未知ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚å†åº¦ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’実行ã—ã¦ãã ã•ã„。"
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr "未サãƒãƒ¼ãƒˆã® API リクエスト: コントローラ = %(controller)s, アクション = %(action)s"
@@ -1738,6 +1734,7 @@ msgstr "Create key pair: キーペア %s を作æˆã—ã¾ã™ã€‚"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1813,172 +1810,172 @@ msgid "Detach Volume Failed."
msgstr "Detach volume: ボリューム %s をデタッãƒã—ã¾ã™"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "アトリビュート %s ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Allocate address: アドレスを割り当ã¦ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Release address: アドレス %s を開放ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "インスタンス %(instance_id)s ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ %(public_ip)s を割り当ã¦"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Disassociate address: アドレス %s ã®é–¢é€£ä»˜ã‘を解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Disassociate address: アドレス %s ã®é–¢é€£ä»˜ã‘を解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Disassociate address: アドレス %s ã®é–¢é€£ä»˜ã‘を解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Reboot instance: インスタンス %r ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "De-registering image: イメージ %s を登録解除ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "イメージ %(image_location)s ㌠ID %(image_id)s ã§ç™»éŒ²ã•れã¾ã—ãŸ"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "ユーザã¾ãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "グループ \"all\" ã®ã¿ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "operation_type 㯠add ã¾ãŸã¯ remove ã®ä½•れã‹ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "イメージ %s ã®å…¬é–‹è¨­å®šã‚’æ›´æ–°ã—ã¾ã™ã€‚"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "インスタンス %s: rescued"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2027,37 +2024,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "例外 %s ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2082,6 +2119,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2131,21 +2169,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2156,6 +2198,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2175,12 +2218,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2225,7 +2268,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2240,20 +2283,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "getter %s をコールã—ã¾ã™ã€‚"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2325,10 +2371,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2355,221 +2403,296 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "マウントãƒã‚¤ãƒ³ãƒˆã‚’変æ›ã§ãã¾ã›ã‚“。 %s"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "マウントãƒã‚¤ãƒ³ãƒˆã‚’変æ›ã§ãã¾ã›ã‚“。 %s"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "インスタンス %s: rescued"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2743,28 +2866,33 @@ msgstr "VLANインタフェース %s ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2859,14 +2987,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
@@ -2915,7 +3043,7 @@ msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3045,11 +3173,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr "Invalid signature: ユーザ %s ã®ç½²åãŒä¸æ­£ã§ã™ã€‚"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3162,16 +3285,16 @@ msgstr ""
msgid "Create networks failed"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3181,7 +3304,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "有効ãªãƒ«ãƒ¼ãƒ«ã‚’作æˆã™ã‚‹ç‚ºã®å分ãªãƒ‘ラメータãŒã‚りã¾ã›ã‚“"
@@ -3199,16 +3322,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3222,12 +3345,12 @@ msgstr "Reboot instance: インスタンス %r ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
msgid "stop instance"
msgstr "Reboot instance: インスタンス %r ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "アクション(action): %s"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3276,16 +3399,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "例外 %s ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Release address: アドレス %s を開放ã—ã¾ã™ã€‚"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Release address: アドレス %s を開放ã—ã¾ã™ã€‚"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3295,124 +3447,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "メッセージ %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "メッセージ %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "インスタンス %(instance_id)s ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ %(public_ip)s を割り当ã¦"
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3806,247 +3991,263 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
#, fuzzy
msgid "Cannot run any more instances of this type."
msgstr "インスタンスã®ã‚¯ã‚ªãƒ¼ã‚¿ã‚’è¶…ãˆã¾ã—ãŸã€‚ã“ã®ã‚¿ã‚¤ãƒ—ã«ãŠã„ã¦ã¯ã‚㨠%s インスタンスã—ã‹å®Ÿè¡Œã§ãã¾ã›ã‚“。"
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr "インスタンスã®ã‚¯ã‚ªãƒ¼ã‚¿ã‚’è¶…ãˆã¾ã—ãŸã€‚ã“ã®ã‚¿ã‚¤ãƒ—ã«ãŠã„ã¦ã¯ã‚㨠%s インスタンスã—ã‹å®Ÿè¡Œã§ãã¾ã›ã‚“。"
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "インスタンス %s ã«ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’接続(attach)ã§ãã¾ã›ã‚“。"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "%s 個ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®èµ·å‹•ã‚’å§‹ã‚ã¾ã™â€¦"
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "VM %s ã«å¯¾ã™ã‚‹ã‚¹ãƒŠãƒƒãƒ—ショットを開始ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "Create Security Group: セキュリティグループ %s を作æˆã—ã¾ã™ã€‚"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "VBD %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "VBD %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "Revoke security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s ã®å–消"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Authorize security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revoke security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s ã®å–消"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4150,670 +4351,666 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "予期ã—ãªã„エラー発生: %s"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Rebooting instance: インスタンス %s ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Detach volume: ボリューム %s をデタッãƒã—ã¾ã™"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Rebooting instance: インスタンス %s ã‚’å†èµ·å‹•ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "インスタンス %s ã¯å®Ÿè¡Œä¸­ã§ã™ã€‚"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "インスタンス%s: å†èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "snapshotting: インスタンス %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットをå–得中"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "ファイルパス '%s' を埋ã‚込んã§ã„ã¾ã™"
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
#, fuzzy
msgid "Unrescuing"
msgstr "Unrescuing: インスタンス %s をアンレスキューã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "snapshotting: インスタンス %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットをå–得中"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "retrieving diagnostics: インスタンス %s ã®è¨ºæ–­æƒ…報をå–å¾—ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
#, fuzzy
msgid "Inject network info"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
#, fuzzy
msgid "Getting vnc console"
msgstr "コンソールを追加ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "コンソールを追加ã—ã¦ã„ã¾ã™"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "ボリューム切断: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "ボリュームを未知ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ %s ã‹ã‚‰ãƒ‡ã‚¿ãƒƒãƒã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "ボリューム切断: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Deleting user: ユーザ %s を削除ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Deleting user: ユーザ %s を削除ã—ã¾ã™ã€‚"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4927,18 +5124,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5017,54 +5214,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "インスタンス %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "インスタンス %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "インスタンス %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "インスタンス %s: rescued"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "インスタンス %s: rescued"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5081,56 +5294,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5166,32 +5383,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "プライベートキーã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "åˆæœŸåŒ–ベクタã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "イメージファイル %(image_file)s ã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5210,16 +5432,20 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, fuzzy, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "インスタンス %(instance_id)s ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ %(public_ip)s を割り当ã¦"
@@ -5369,67 +5595,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d ã¯ç„¡åйã§ã™ã€‚dnsmasqã‚’å†å®Ÿè¡Œã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "dnsmasqã«å¯¾ã—ã¦hupã‚’é€ä¿¡ã—ã¾ã—ãŸãŒ %s ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d ã¯ç„¡åйã§ã™ã€‚dnsmasqã‚’å†å®Ÿè¡Œã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "radvd åœæ­¢ãŒ %s 例外を発行ã—ã¾ã—ãŸ"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d ãŒã‚¹ãƒˆãƒ¼ãƒ«ã—ã¦ã„ã‚‹ã®ã§ radvd ã‚’å†å®Ÿè¡Œã—ã¦ã„ã¾ã™â€¦"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "䏿­£ãªãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã§ã™: %s"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "VLANインタフェース %s ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "プライベートキーã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "xvp ã®é–‹å§‹ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
@@ -5591,80 +5817,79 @@ msgstr "å—信: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "インスタンス %s: èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
@@ -5674,68 +5899,73 @@ msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
msgid "Quantum Error creating security group %s"
msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Revoke security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s ã®å–消"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Delete security group: セキュリティグループ %s を削除ã—ã¾ã™ã€‚"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "エラー %s をキャッãƒã—ã¾ã—ãŸã€‚"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "Authorize security group ingress: ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ã‚°ãƒ«ãƒ¼ãƒ—è¨±å¯ %s"
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5747,6 +5977,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "指定ã•れãŸãƒ«ãƒ¼ãƒ«ã¯æ—¢ã«ã‚°ãƒ«ãƒ¼ãƒ— %s ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "xvp ã®é–‹å§‹ä¸­ã«ã‚¨ãƒ©ãƒ¼: %s"
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5782,17 +6031,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "å—信: %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5889,21 +6138,78 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "FLAGSã®ä¸€è¦§:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, fuzzy, python-format
+msgid "Starting %d workers"
+msgstr "開始アドレス"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6077,18 +6383,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "呼ã³å‡ºã—元㫠例外 %s ã‚’è¿”å´ã—ã¾ã™ã€‚"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6117,44 +6428,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6420,38 +6731,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6523,10 +6834,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6534,6 +6852,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6569,14 +6892,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6646,46 +6969,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "モデルサーãƒã¸ã®æŽ¥ç¶šã‚’復旧ã—ã¾ã—ãŸã€‚"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "モデルサーãƒãŒæ¶ˆæ»…ã—ã¾ã—ãŸã€‚"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6724,12 +7047,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6774,44 +7097,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6824,17 +7109,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6843,7 +7131,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "インスタンス %s ã¯å®Ÿè¡Œä¸­ã§ã™ã€‚"
@@ -6860,25 +7148,32 @@ msgstr "インスタンス %s を終了ã—ãŸå¾Œã§ã™ã€‚"
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6888,22 +7183,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6965,30 +7260,69 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7146,22 +7480,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "ファイルパス '%s' を埋ã‚込んã§ã„ã¾ã™"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7181,7 +7515,7 @@ msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–
msgid "PXE deploy failed for instance %s"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7191,28 +7525,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Get console output: インスタンス %s ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å‡ºåŠ›ã‚’å–å¾—ã—ã¾ã™ã€‚"
@@ -7789,7 +8123,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7962,50 +8296,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8145,12 +8479,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, fuzzy, python-format
msgid "Creating config drive at %(path)s"
msgstr "ファイルパス '%s' を埋ã‚込んã§ã„ã¾ã™"
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, fuzzy, python-format
msgid "Creating config drive failed with error: %s"
msgstr "ファイルパス '%s' を埋ã‚込んã§ã„ã¾ã™"
@@ -8316,7 +8650,7 @@ msgstr "ボリューム切断: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "raw instanceを生æˆã—ã¾ã™ã€‚"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8350,237 +8684,237 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "libvirt %s ã¸æŽ¥ç¶šã—ã¾ã™ã€‚"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "ボリュームグループ%sãŒå­˜åœ¨ã—ã¾ã›ã‚“。"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "libvirtã¸ã®æŽ¥ç¶šãŒåˆ‡ã‚Œã¦ã„ã¾ã™ã€‚"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "libvirt %s ã¸æŽ¥ç¶šã—ã¾ã™ã€‚"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "%s ã‚’åœæ­¢ã—よã†ã¨ã—ã¦ã„ã¾ã™"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "インスタンス%s: å†èµ·å‹•ã—ã¾ã—ãŸã€‚"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr "データ: %(data)r, ファイルパス: %(fpath)r"
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "ID %(image_id)s ã¨ã—㦠%(vdi_uuids)s ã®ã‚¢ãƒƒãƒ—ロードã®ç‚ºã« xapi ã‚’å•ã„åˆã‚ã›ã—ã¦ã„ã¾ã™"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, fuzzy, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr "インスタンス %(inst_name)s: イメージ %(img_id)s ã¸ã®ãƒ‡ãƒ¼ã‚¿åŸ‹ã‚è¾¼ã¿ã®ã‚¨ãƒ©ãƒ¼ã‚’無視ã—ã¦ã„ã¾ã™ (%(e)s)"
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8588,73 +8922,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8662,50 +8996,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8715,67 +9049,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "%s ã®èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8808,11 +9142,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8973,7 +9307,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8981,17 +9315,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9079,52 +9413,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9134,20 +9468,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9171,61 +9505,61 @@ msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "ボリューム %s ã®å­˜åœ¨ãŒç¢ºèªã§ãã¾ã›ã‚“。"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "ボリューム %s を切断(detach)ã§ãã¾ã›ã‚“"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9271,7 +9605,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9422,27 +9756,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9508,18 +9842,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9859,54 +10193,54 @@ msgstr "Deleting user: ユーザ %s を削除ã—ã¾ã™ã€‚"
msgid "Renamed the VM from %s"
msgstr "ボリューム %s ã®å­˜åœ¨ãŒç¢ºèªã§ãã¾ã›ã‚“。"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -10029,107 +10363,111 @@ msgstr "ボリューム %s を切断(detach)ã§ãã¾ã›ã‚“"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "インスタンス %(instance_name)s ã‹ã‚‰ãƒžã‚¦ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒˆ %(mountpoint)s を切断(detach)ã—ã¾ã—ãŸ"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "getter %s をコールã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, fuzzy, python-format
msgid "Injecting file path: %r"
msgstr "ファイルパス '%s' を埋ã‚込んã§ã„ã¾ã™"
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "ip %s ã«å¯¾ã™ã‚‹ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "OpenSSL エラー: %s"
@@ -10148,24 +10486,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "プライベートキーã®å¾©å·ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "例外 %s ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
@@ -10302,72 +10640,72 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "インスタンス %s ã®VBDãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "グループ %s ã¯æ—¢ã«å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "VBD %s ã® unplug ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "VBD %s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "VM %(vm_ref)s, VDI %(vdi_ref)s 用仮想ブロックデãƒã‚¤ã‚¹(VBD) %(vbd_ref)s を作æˆã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "VM %(vm_ref)s, VDI %(vdi_ref)s 用仮想ブロックデãƒã‚¤ã‚¹(VBD) %(vbd_ref)s を作æˆã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10376,305 +10714,298 @@ msgstr ""
"%(sr_ref)s 上㫠VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, "
"%(read_only)s) を作æˆã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "VM %s ã«å¯¾ã™ã‚‹ã‚¹ãƒŠãƒƒãƒ—ショットを開始ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "ID %(image_id)s ã¨ã—㦠%(vdi_uuids)s ã®ã‚¢ãƒƒãƒ—ロードã®ç‚ºã« xapi ã‚’å•ã„åˆã‚ã›ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, fuzzy, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr "イメージ %(image_location)s ㌠ID %(image_id)s ã§ç™»éŒ²ã•れã¾ã—ãŸ"
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "イメージ %(image)s ã®ã‚µã‚¤ã‚º:%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "ドメイン0 上㮠/boot/guest 㫠VDI %s をコピー中"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "カーãƒãƒ«/RAMディスク VDI %s ãŒå‰Šé™¤ã•れã¾ã—ãŸ"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "PV kernelã®vdi %s ã‚’å–å¾—ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s ã¯ä¾ç„¶ã¨ã—ã¦å­˜åœ¨ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "SR %s ã‚’å†ã‚¹ã‚­ãƒ£ãƒ³ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s ã®è¦ªã¯ %(parent_ref)s ã§ã™"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr "親 %(parent_uuid)s ãŒå…ƒã€…ã®è¦ª %(original_parent_uuid)s ã¨ä¸€è‡´ã—ã¾ã›ã‚“。作æˆã‚’待機ã—ã¦ã„ã¾ã™â€¦"
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "VBD %s を接続ã—ã¦ã„ã¾ã™â€¦ "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "仮想ブロックデãƒã‚¤ã‚¹(VBD) %s ã®æŽ¥ç¶šãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "VDI %s 用ã®ä»®æƒ³ãƒ–ロックデãƒã‚¤ã‚¹(VBD)を削除ã—ã¦ã„ã¾ã™â€¦ "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "VDI %s 用ã®ä»®æƒ³ãƒ–ロックデãƒã‚¤ã‚¹(VBD)ã®å‰Šé™¤ãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "%s ã«å¯¾ã—㦠pygrub を実行ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Xen Kernel %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
"No Xen kernel found. Booting HVM.\r\n"
"Xen 用カーãƒãƒ«ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。完全仮想化モード(HVM)ã§èµ·å‹•ã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10682,62 +11013,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "パーティションテーブル %s ã®æ›¸ãè¾¼ã¿ãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10747,213 +11078,213 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr "%s 用ã®ãƒ–リッジインタフェースを開始ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "raw instanceを生æˆã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
#, fuzzy
msgid "Starting VM"
msgstr "xvp ã‚’å†èµ·å‹•ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "VM %s ã®ã‚¹ãƒŠãƒƒãƒ—ショットã¨ã‚¢ãƒƒãƒ—ロードãŒå®Œäº†ã—ã¾ã—ãŸã€‚"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "インスタンス終了処ç†ã‚’é–‹å§‹ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "xvp ã‚’å†èµ·å‹•ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr "カーãƒãƒ«/RAMディスクファイルãŒå‰Šé™¤ã•れã¾ã—ãŸ"
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
#, fuzzy
msgid "Destroying VM"
msgstr "xvp ã‚’å†èµ·å‹•ã—ã¦ã„ã¾ã™"
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ›ã‚¹ãƒˆã®è¨­å®šã‚’ã—ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "VM %(vm_ref)s, network %(network_ref)s 用仮想インターフェース(VIF)を作æˆã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "VM %(vm_ref)s, network %(network_ref)s 用仮想インターフェース(VIF)を作æˆã—ã¦ã„ã¾ã™ã€‚"
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -11034,7 +11365,7 @@ msgstr "ボリューム切断: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11042,7 +11373,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "NotFound 発生: %s"
@@ -11095,67 +11426,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/ka_GE/LC_MESSAGES/nova.po b/nova/locale/ka_GE/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..395e9c0ad
--- /dev/null
+++ b/nova/locale/ka_GE/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Georgian (Georgia) translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Georgian (Georgia) "
+"(http://www.transifex.com/projects/p/openstack/language/ka_GE/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/ko/LC_MESSAGES/nova.po b/nova/locale/ko/LC_MESSAGES/nova.po
index dbc67054c..fa4dd2271 100644
--- a/nova/locale/ko/LC_MESSAGES/nova.po
+++ b/nova/locale/ko/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-12-16 04:42+0000\n"
"Last-Translator: Zhongyue Luo <lzyeval@gmail.com>\n"
"Language-Team: Korean <ko@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,212 +156,222 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "%s 볼륨 íƒˆì°©ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -369,85 +379,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1037 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "%(instance_name)s ì¸ìŠ¤í„´ìŠ¤ì— %(mountpoint)s 마운트지ì ì´ 장착ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1495,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1708,7 +1705,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,6 +1727,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1804,169 +1802,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2015,37 +2013,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2070,6 +2108,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2119,21 +2158,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2144,6 +2187,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2163,12 +2207,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2213,7 +2257,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2228,20 +2272,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2313,10 +2360,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2343,217 +2392,291 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2725,28 +2848,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2840,14 +2968,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
@@ -2896,7 +3024,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3024,11 +3152,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3139,16 +3262,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3158,7 +3281,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3175,16 +3298,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3196,11 +3319,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3249,16 +3372,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3268,124 +3420,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
+msgid "Got update for instance: %(instance)s"
+msgstr "%(instance_name)s ì¸ìŠ¤í„´ìŠ¤ì— %(mountpoint)s 마운트지ì ì´ 장착ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "%(instance_name)s ì¸ìŠ¤í„´ìŠ¤ì— %(mountpoint)s 마운트지ì ì´ 장착ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3771,239 +3956,255 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "%s ë³¼ë¥¨ì„ ì°¾ì„수 없습니다"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "%s ë³¼ë¥¨ì„ ì°¾ì„수 없습니다"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4106,658 +4307,653 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "%s 볼륨 íƒˆì°©ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "볼륨 탈착: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "볼륨 탈착: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s: 스냅샷 저장중"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4871,18 +5067,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4960,54 +5156,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5024,56 +5236,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5109,32 +5325,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5153,15 +5374,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5311,67 +5536,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5532,79 +5757,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5614,65 +5838,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5684,6 +5913,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5719,17 +5967,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5826,21 +6074,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6014,18 +6318,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6054,44 +6363,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6352,38 +6661,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "%(instance_name)s ì¸ìŠ¤í„´ìŠ¤ì— %(mountpoint)s 마운트지ì ì´ 장착ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6455,10 +6764,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6466,6 +6782,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6501,14 +6822,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6578,46 +6899,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6656,12 +6977,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6706,43 +7027,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6755,17 +7039,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6774,7 +7061,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6791,25 +7078,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6819,22 +7113,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6896,30 +7190,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7077,22 +7409,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7112,7 +7444,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7122,28 +7454,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7719,7 +8051,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7891,50 +8223,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8073,12 +8405,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8243,7 +8575,7 @@ msgstr "볼륨 탈착: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "%s ì¸ìŠ¤í„´ìŠ¤ì— ë³¼ë¥¨ìž¥ì°© í•  수 없습니다"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8277,235 +8609,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8513,73 +8845,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "%s 볼륨 íƒˆì°©ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8587,50 +8919,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8640,67 +8972,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8733,11 +9065,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8898,7 +9230,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8906,17 +9238,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9004,52 +9336,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9059,20 +9391,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9096,61 +9428,61 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "%s ë³¼ë¥¨ì„ ì°¾ì„수 없습니다"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "%s 볼륨 íƒˆì°©ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9196,7 +9528,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9347,27 +9679,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9433,18 +9765,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9777,54 +10109,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr "%s ë³¼ë¥¨ì„ ì°¾ì„수 없습니다"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9947,107 +10279,111 @@ msgstr "%s 볼륨 íƒˆì°©ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "%(instance_name)s ì¸ìŠ¤í„´ìŠ¤ì— %(mountpoint)s 마운트지ì ì´ 탈착ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10063,24 +10399,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10217,374 +10553,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10592,62 +10921,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10657,208 +10986,208 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "ì¸ìŠ¤í„´ìŠ¤ %s를 재부팅합니다"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10938,7 +11267,7 @@ msgstr "볼륨 탈착: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10946,7 +11275,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10999,67 +11328,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/ko_KR/LC_MESSAGES/nova.po b/nova/locale/ko_KR/LC_MESSAGES/nova.po
index 60706b483..2a328cfb5 100644
--- a/nova/locale/ko_KR/LC_MESSAGES/nova.po
+++ b/nova/locale/ko_KR/LC_MESSAGES/nova.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nova\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2013-05-06 16:05+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: en_US <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,211 +157,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Keypair ë°ì´í„°ê°€ ë§žì§€ 않습니다"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "ê·¸ ìš”ì²­ì€ ë§žì§€ 않습니다."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "ìž…ë ¥ ê°’ì´ ì •í™•í•˜ì§€ 않습니다."
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ ìž ìžê¸° 실패"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "ì¸ìŠ¤í„´ìŠ¤ 재시작 실패"
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "CPU 정보를 ë°›ì„수 없습니다."
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s는 v4/6ì£¼ì†Œì— ë§žì§€ ì•Šì€ IP입니다."
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -369,85 +379,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "Disk format %(disk_format)s를 알 수 없습니다."
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1037 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1495,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1708,7 +1705,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,6 +1727,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1804,169 +1802,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr "vol = %s\n"
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "주소 할당"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "주소 릴리즈 %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2015,37 +2013,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2070,6 +2108,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2119,21 +2158,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2144,6 +2187,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2163,12 +2207,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2213,7 +2257,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2228,20 +2272,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2313,10 +2360,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2343,217 +2392,291 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "ìž…ë ¥ ê°’ì´ ì •í™•í•˜ì§€ 않습니다."
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2724,28 +2847,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2837,14 +2965,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2892,7 +3020,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3020,11 +3148,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3135,16 +3258,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3154,7 +3277,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3171,16 +3294,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3192,11 +3315,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3245,16 +3368,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "주소 릴리즈 %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "주소 릴리즈 %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3264,124 +3416,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
-msgstr ""
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
+msgstr "ì¸ìŠ¤í„´ìŠ¤ 재시작 실패"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3766,238 +3951,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4100,650 +4301,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4857,18 +5053,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4946,54 +5142,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5010,56 +5222,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5095,32 +5311,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5139,15 +5360,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5297,67 +5522,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5518,79 +5743,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5600,65 +5824,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5670,6 +5899,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5705,17 +5953,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5812,21 +6060,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6000,18 +6304,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6040,44 +6349,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6338,38 +6647,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6441,10 +6750,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6452,6 +6768,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6487,14 +6808,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6564,46 +6885,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6642,12 +6963,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6692,43 +7013,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6741,17 +7025,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6760,7 +7047,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6777,25 +7064,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6805,22 +7099,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6882,30 +7176,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7058,22 +7390,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7093,7 +7425,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7103,28 +7435,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7699,7 +8031,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7871,50 +8203,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8051,12 +8383,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8214,7 +8546,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8248,235 +8580,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8484,73 +8816,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8558,50 +8890,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8611,67 +8943,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8704,11 +9036,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8869,7 +9201,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8877,17 +9209,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8975,52 +9307,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9030,20 +9362,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9067,60 +9399,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9166,7 +9498,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9317,27 +9649,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9403,18 +9735,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9747,54 +10079,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9915,107 +10247,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10031,24 +10367,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10185,374 +10521,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10560,62 +10889,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10625,207 +10954,207 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "ì¸ìŠ¤í„´ìŠ¤ 재시작 실패"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10905,7 +11234,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10913,7 +11242,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10966,67 +11295,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/ms/LC_MESSAGES/nova.po b/nova/locale/ms/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..0df46354d
--- /dev/null
+++ b/nova/locale/ms/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Malay translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Malay "
+"(http://www.transifex.com/projects/p/openstack/language/ms/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/nb/LC_MESSAGES/nova.po b/nova/locale/nb/LC_MESSAGES/nova.po
index 3daec6cc4..333c1c76b 100644
--- a/nova/locale/nb/LC_MESSAGES/nova.po
+++ b/nova/locale/nb/LC_MESSAGES/nova.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nova\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-09-13 10:30+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: nb <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -158,211 +158,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "Forespørselen er ugyldig."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Ugyldig IP protokoll %(protocol)s."
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s er ikke en gyldig IP v4/6 addresse."
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -370,85 +380,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr "Ressurs ble ikke funnet."
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -456,1037 +466,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "Prosjekt %(project_id)s ble ikke funnet."
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "Nettverk %(network_id)s ble ikke funnet."
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "Nettverk %(network_id)s ble ikke funnet."
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "Prosjekt %(project_id)s ble ikke funnet."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "Ingen nettverk definert."
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "Tjeneste %(service_id)s ble ikke funnet."
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr "Handlingen er ikke tillatt."
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
-msgstr ""
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "Nøkkelpar '%s' finnes allerede."
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr "Kvote overskredet"
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "Tjeneste %(service_id)s ble ikke funnet."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Prosjekt %(project_id)s ble ikke funnet."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "Prosjekt %(project_id)s ble ikke funnet."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "Tjeneste %(service_id)s ble ikke funnet."
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
-msgstr ""
-
-#: nova/hooks.py:62
-#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
+#: nova/exception.py:1225
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Forventet objekt av typen: %s"
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr "Forventet objekt av typen: %s"
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1496,17 +1493,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "Tjenernavn er ikke en streng eller unicode"
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1709,7 +1706,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1731,6 +1728,7 @@ msgstr "Lag nøkkelpar %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1805,169 +1803,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Tildel adresse"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Frigjør adresse %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "bruker eller gruppe ikke spesifisert"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "kun gruppe \"all\" er støttet"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2017,37 +2015,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Kunne ikke hente metadata for ip:% s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, fuzzy, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr "Laster utvidelse %s"
+
+#: nova/api/openstack/__init__.py:287
+#, fuzzy, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr "Laster utvidelse %s"
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "Laster utvidelse %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2072,6 +2110,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2121,21 +2160,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2146,6 +2189,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2165,12 +2209,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "Kunne ikke laste utvidelse %(ext_factory)s: %(exc)s"
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr "Kunne ikke laste utvidelse %(classpath)s: %(exc)s"
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, fuzzy, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr "Kunne ikke laste utvidelse %(ext_name)s: %(exc)s"
@@ -2215,7 +2259,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr "Ingen slik handling: %s"
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2230,20 +2274,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2315,10 +2362,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2345,218 +2394,293 @@ msgid "Metadata item was not found"
msgstr "Metadata element ble ikke funnet"
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Tjeneste %(service_id)s ble ikke funnet."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr "Feil nettverks-format: mangler %s"
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr "Feil nettverks-format"
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr "Tjenernavn er ikke definert"
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "Ressurs ble ikke funnet."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "Ressurs ble ikke funnet."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Ugyldig snapshot"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2727,28 +2851,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Nettverk ikke funnet"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2841,14 +2970,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Metadata element ble ikke funnet"
@@ -2897,7 +3026,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3025,11 +3154,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr "Nøkkelpar '%s' finnes allerede."
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3142,16 +3266,16 @@ msgstr ""
msgid "Create networks failed"
msgstr "Ingen nettverk definert."
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3161,7 +3285,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "Ikke nok parametere for å lage en gyldig regel."
@@ -3179,16 +3303,16 @@ msgstr "Viser nettverk med id %s"
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, fuzzy, python-format
msgid "Bad prefix for network in cidr %s"
msgstr "Sletter nettverk med id %s"
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3200,11 +3324,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3253,16 +3377,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "Laster utvidelse %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Frigjør adresse %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Frigjør adresse %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3272,124 +3425,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, fuzzy, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr "Kunne ikke laste utvidelse %(ext_factory)s: %(exc)s"
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
-#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr ""
+#: nova/cells/messaging.py:823
+#, fuzzy, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr "Tjeneste %(service_id)s ble ikke funnet."
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3776,238 +3961,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4110,650 +4311,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Nettverk ikke funnet"
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Kunne ikke hente metadata for ip:% s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4867,18 +5063,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4956,54 +5152,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5020,56 +5232,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5105,32 +5321,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5149,15 +5370,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5307,67 +5532,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5529,80 +5754,79 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Nettverk ikke funnet"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5612,65 +5836,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5682,6 +5911,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Denne regelen eksisterer allerede i gruppen %s"
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5717,17 +5965,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5824,21 +6072,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6012,18 +6316,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6052,44 +6361,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6351,38 +6660,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6454,10 +6763,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6465,6 +6781,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6500,14 +6821,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6577,47 +6898,47 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
#, fuzzy
msgid "memcached_servers not defined"
msgstr "Tjenernavn er ikke definert"
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6656,12 +6977,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6706,44 +7027,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "Tjener ikke funnet"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6756,17 +7039,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6775,7 +7061,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6792,25 +7078,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6820,22 +7113,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6897,30 +7190,69 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "Tjener ikke funnet"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7074,22 +7406,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7109,7 +7441,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7119,28 +7451,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7716,7 +8048,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7888,50 +8220,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8068,12 +8400,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8231,7 +8563,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8265,237 +8597,237 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Ingen nettverk definert."
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Ingen nettverk definert."
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8503,73 +8835,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8577,50 +8909,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8630,67 +8962,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8723,11 +9055,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8888,7 +9220,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8896,17 +9228,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8994,52 +9326,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "Tjener ikke funnet"
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9049,20 +9381,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9086,60 +9418,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9185,7 +9517,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9336,27 +9668,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9422,18 +9754,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9766,54 +10098,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9936,107 +10268,111 @@ msgstr "Kan ikke finne adressen %r"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10052,24 +10388,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10206,375 +10542,368 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "Prosjekt %(project_id)s ble ikke funnet."
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10582,62 +10911,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10647,207 +10976,207 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Feil nettverks-format"
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10927,7 +11256,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10935,7 +11264,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10988,64 +11317,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/nl_NL/LC_MESSAGES/nova.po b/nova/locale/nl_NL/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..0e59dbc16
--- /dev/null
+++ b/nova/locale/nl_NL/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Dutch (Netherlands) translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Dutch (Netherlands) "
+"(http://www.transifex.com/projects/p/openstack/language/nl_NL/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/nova.pot b/nova/locale/nova.pot
index 75d88b1c5..e62e68a03 100644
--- a/nova/locale/nova.pot
+++ b/nova/locale/nova.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: nova jenkins.nova.propose.translation.update.250\n"
+"Project-Id-Version: nova jenkins.nova.propose.translation.update.274\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,211 +156,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -368,85 +378,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -454,1037 +464,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1494,17 +1491,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1707,7 +1704,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,6 +1726,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1803,169 +1801,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2014,37 +2012,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2069,6 +2107,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2118,21 +2157,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2143,6 +2186,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2162,12 +2206,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2212,7 +2256,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2227,20 +2271,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2312,10 +2359,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2342,217 +2391,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2723,28 +2845,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2836,14 +2963,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2891,7 +3018,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3019,11 +3146,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3134,16 +3256,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3153,7 +3275,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3170,16 +3292,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3191,11 +3313,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3244,16 +3366,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3263,124 +3414,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3765,238 +3948,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4099,650 +4298,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4856,18 +5050,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4945,54 +5139,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5009,56 +5219,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5094,32 +5308,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5138,15 +5357,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5296,67 +5519,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5517,79 +5740,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5599,65 +5821,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5669,6 +5896,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5704,17 +5950,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5811,21 +6057,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -5999,18 +6301,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6039,44 +6346,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6337,38 +6644,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6440,10 +6747,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6451,6 +6765,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6486,14 +6805,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6563,46 +6882,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6641,12 +6960,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6691,43 +7010,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6740,17 +7022,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6759,7 +7044,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6776,25 +7061,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6804,22 +7096,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6881,30 +7173,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7057,22 +7387,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7092,7 +7422,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7102,28 +7432,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7698,7 +8028,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7870,50 +8200,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8050,12 +8380,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8213,7 +8543,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8247,235 +8577,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8483,73 +8813,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8557,50 +8887,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8610,67 +8940,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8703,11 +9033,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8868,7 +9198,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8876,17 +9206,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8974,52 +9304,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9029,20 +9359,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9066,60 +9396,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9165,7 +9495,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9316,27 +9646,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9402,18 +9732,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9746,54 +10076,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9914,107 +10244,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10030,24 +10364,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10184,374 +10518,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10559,62 +10886,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10624,206 +10951,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10903,7 +11230,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10911,7 +11238,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
diff --git a/nova/locale/pt/LC_MESSAGES/nova.po b/nova/locale/pt/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..bdd34f293
--- /dev/null
+++ b/nova/locale/pt/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Portuguese translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Portuguese "
+"(http://www.transifex.com/projects/p/openstack/language/pt/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/pt_BR/LC_MESSAGES/nova.po b/nova/locale/pt_BR/LC_MESSAGES/nova.po
index e827c080d..06f31b060 100644
--- a/nova/locale/pt_BR/LC_MESSAGES/nova.po
+++ b/nova/locale/pt_BR/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-05-04 19:25+0000\n"
"Last-Translator: Júlio Cezar Santos Pires <Unknown>\n"
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,214 +157,224 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "A requisição é inválida."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "Dados recebidos é inválido"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Volume inválido"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "Assinatura inválida para usuário %s"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "Sequencia de porta %(from_port)s:%(to_port)s é inválida. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Protocolo IP %(protocol)s é inválido."
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "Tipo de conteúdo %(content_type)s é inválido."
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Falha ao suspender instância"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Falhou em atualizar senha: %(resp)r"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Falha ao suspender instância"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Falhou ao reiniciar instância"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Falhou ao reiniciar instância"
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "Falhou ao reiniciar instância"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Falhou ao reiniciar instância"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "Serviço está indisponível neste momento"
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "Serviço está indisponível neste momento"
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s não é um endereço IPv4/6 válido."
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -372,86 +382,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "Formato do disco %(disk_format)s não é aceito"
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "Dados recebidos é inválido"
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "Instância não existe"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr "Volume %(volume_id)s não pode ser encontrado."
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr "Imagem %(image_id)s não foi encontrada."
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -459,1040 +469,1026 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "Projeto %(project_id)s não foi encontrado."
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "Rede %(network_id)s não foi encontrada."
-#: nova/exception.py:498
+#: nova/exception.py:509
#, fuzzy, python-format
msgid "Network %(network_id)s is still in use."
msgstr "Rede %(network_id)s não foi encontrada."
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr "%(req)s é necessário para criar a rede."
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "Rede %(network_id)s não foi encontrada."
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "Projeto %(project_id)s não foi encontrado."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "Nenhuma rede definida."
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, fuzzy, python-format
msgid "Port %(port_id)s is still in use."
msgstr "Rede %(network_id)s não foi encontrada."
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Ponto de montagem %(mountpoint)s conectada à instância %(instance_name)s"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "group %s já existe"
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "Removendo rede com id %s"
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr "Interface %(interface)s não encontrada."
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr "Certificado %(certificate_id)s não encontrado."
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "Serviço %(service_id)s não encontrado."
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr "Host %(host)s não encontrado."
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, fuzzy, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr "Host %(host)s não encontrado."
-#: nova/exception.py:711
+#: nova/exception.py:722
#, fuzzy, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr "Projeto %(project_id)s não foi encontrado."
-#: nova/exception.py:715
+#: nova/exception.py:726
#, fuzzy, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr "Usuário %(user_id)s não foi encontrado."
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, fuzzy, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:787
+#: nova/exception.py:798
#, fuzzy, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "Tipo de conteúdo %(content_type)s é inválido."
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "Instância não existe"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "Volume não encontrada para a instância %(instance_id)s."
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
-msgstr ""
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "group %s já existe"
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "group %s já existe"
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "group %s já existe"
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Volume %(volume_id)s não pode ser encontrado."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "Projeto %(project_id)s não foi encontrado."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "Imagem %(image_id)s não foi encontrada."
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "Kernel não encontrado para a imagem %(image_id)s."
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "Kernel não encontrado para a imagem %(image_id)s."
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Começando a terminar instâncias"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Começando a terminar instâncias"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, fuzzy, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "Projeto %(project_id)s não foi encontrado."
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, fuzzy, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "Projeto %(project_id)s não foi encontrado."
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "group %s já existe"
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:62
-#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
-msgstr ""
+#: nova/exception.py:1225
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Objeto esperado do tipo: %s"
-#: nova/hooks.py:70
+#: nova/exception.py:1229
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
-msgstr ""
-
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-#, fuzzy
-msgid "Failed to get nw_info"
-msgstr "Falha ao obter metadados para o ip: %s"
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1241
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1245
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1249
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1254
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1259
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Conjunto completo de FLAGS:"
-
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
+#: nova/notifications.py:232
+#, fuzzy
+msgid "Failed to get nw_info"
+msgstr "Falha ao obter metadados para o ip: %s"
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Encerrado serviço que não tem entrada na base de dados"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "depuração em retorno de chamada: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Endereço para Link Local não encontrado: %s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "Não foi possível atribuir um IP para o Link Local de %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "Backend inválido: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr "Objeto esperado do tipo: %s"
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1502,17 +1498,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1716,7 +1712,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr "Ocorreu um erro desconhecido. Por favor tente sua requisição novamente."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1738,6 +1734,7 @@ msgstr "Criar par de chaves %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1813,172 +1810,172 @@ msgid "Detach Volume Failed."
msgstr "Desanexar volume %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "atributo não suportado: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Alocar endereço"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "Liberar endereço %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Desatribuir endereço %s"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Desatribuir endereço %s"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Desatribuir endereço %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "Começando a terminar instâncias"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Reiniciar instância %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "Removendo o registro da imagem %s"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "usuário ou grupo não especificado"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "apenas o grupo \"all\" é suportado"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "operation_type deve ser add ou remove"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "Atualizando publicidade da imagem %s"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "Instância não existe"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2028,37 +2025,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "Falha ao obter metadados para o ip: %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Capturado o erro: %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2083,6 +2120,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2132,21 +2170,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2157,6 +2199,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2176,12 +2219,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2226,7 +2269,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2241,20 +2284,23 @@ msgstr "Corpo do pedido está mal formado"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "Chamando o pai %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2326,10 +2372,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr "Instância não existe"
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2356,222 +2404,297 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Começando a terminar instâncias"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Host %(host)s não encontrado."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Ponto de montagem não pode ser traduzido: %s"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Ponto de montagem não pode ser traduzido: %s"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "Serviço %(service_id)s não encontrado."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "Serviço %(service_id)s não encontrado."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "Corpo do pedido está mal formado"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Falhou ao reiniciar instância"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2745,28 +2868,33 @@ msgstr "Iniciando a VLAN %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Interface %(interface)s não encontrada."
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2860,14 +2988,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Certificado %(certificate_id)s não encontrado."
@@ -2918,7 +3046,7 @@ msgstr "group %s já existe"
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3048,11 +3176,6 @@ msgstr "Usuário %(user_id)s não foi encontrado."
msgid "Invalid timestamp for date %s"
msgstr "Assinatura inválida para usuário %s"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3167,16 +3290,16 @@ msgstr ""
msgid "Create networks failed"
msgstr "Nenhuma rede definida."
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3186,7 +3309,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3204,16 +3327,16 @@ msgstr "Mostrando rede com id %s"
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, fuzzy, python-format
msgid "Bad prefix for network in cidr %s"
msgstr "Removendo rede com id %s"
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3227,12 +3350,12 @@ msgstr "Iniciando instância %s"
msgid "stop instance"
msgstr "Reiniciar instância %r"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "ação: %s"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3281,16 +3404,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "Liberar endereço %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "Liberar endereço %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3300,124 +3452,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "sem método para mensagem: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "sem método para mensagem: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "A instância %(instance_id)s não está executando."
+msgid "Got update for instance: %(instance)s"
+msgstr "Volume não encontrada para a instância %(instance_id)s."
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Volume não encontrada para a instância %(instance_id)s."
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "Volume não encontrada para a instância %(instance_id)s."
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3812,246 +3997,262 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Não é possível anexar o volume na instância %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Falhou ao reiniciar instância"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Começando a terminar instâncias"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "Criar Grupo de Segurança %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Não é possível destruir o VBD %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Não é possível destruir o VBD %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "Revogado entrada do grupo de segurança %s"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Excluir grupo de segurança %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Autorizada entrada do grupo de segurança %s"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "Revogado entrada do grupo de segurança %s"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4155,669 +4356,665 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Falhou ao reiniciar instância"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Falha ao suspender instância"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Erro inexperado lançado: %s"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Começando a terminar instâncias"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Capturado o erro: %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "Removendo rede com id %s"
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Começando a terminar instâncias"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Reconstruindo instância %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Desanexar volume %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Reiniciando a instância %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Reconstruindo instância %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "instância %s: fazendo um snapshot"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr "Removendo imagem %s"
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
#, fuzzy
msgid "error setting admin password"
msgstr "Configurar senha do administrador"
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Falha ao suspender instância"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Capturado o erro: %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
#, fuzzy
msgid "Unrescuing"
msgstr "instância %s: desfazendo o resgate"
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "Iniciando instância %s"
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "Instância não existe"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "instância %s: recuperando os diagnósticos"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "instância %s: reset da rede"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Obter saída do console para instância %s"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
#, fuzzy
msgid "Getting vnc console"
msgstr "Adicionando console"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "Adicionando console"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "Desconectando volume da instância desconhecida %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Rede %(network_id)s não foi encontrada."
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Host %(host)s não encontrado."
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Falha ao obter metadados para o ip: %s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Remover volume com id: %s"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "Instância %s não encontrada"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Removendo imagem %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "Iniciando instância %s"
@@ -4931,18 +5128,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5021,56 +5218,72 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Falhou ao reiniciar instância"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Falhou ao reiniciar instância"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "Corpo do pedido está mal formado"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "Corpo do pedido está mal formado"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "Corpo do pedido está mal formado"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "Corpo do pedido está mal formado"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "Corpo do pedido está mal formado"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5087,56 +5300,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5172,32 +5389,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5216,16 +5438,20 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Falhou ao reiniciar instância"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, fuzzy, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "Volume não encontrada para a instância %(instance_id)s."
@@ -5375,67 +5601,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d está ultrapassado, reiniciando dnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d está ultrapassado, reiniciando dnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d está ultrapassado, reiniciando radvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "Backend inválido: %s"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "Iniciando a VLAN %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "Iniciando instância %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, fuzzy, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr "Interface %(interface)s não encontrada."
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Falha ao suspender instância"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "Iniciando instância %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Removendo o registro da imagem %s"
@@ -5597,80 +5823,79 @@ msgstr "_remover: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "tipo de instância %(instance_type)s é inválida."
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Imagem não encontrada."
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "Removendo rede com id %s"
@@ -5680,68 +5905,73 @@ msgstr "Removendo rede com id %s"
msgid "Quantum Error creating security group %s"
msgstr "Excluir grupo de segurança %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Excluir grupo de segurança %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Excluir grupo de segurança %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Capturado o erro: %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Excluir grupo de segurança %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Revogado entrada do grupo de segurança %s"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Excluir grupo de segurança %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Capturado o erro: %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "Autorizada entrada do grupo de segurança %s"
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5753,6 +5983,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Esta regra já existe no grupo %s"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "Configurar senha do administrador"
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5788,17 +6037,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "_remover: %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, fuzzy, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr "Classe %(fullname)s está obsoleta: %(msg)s"
@@ -5895,21 +6144,78 @@ msgstr "Ambiente não suportado por SSH"
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Conjunto completo de FLAGS:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6083,18 +6389,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "Retornando exceção %s ao método de origem"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6123,44 +6434,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6427,38 +6738,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Volume não encontrada para a instância %(instance_id)s."
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6530,10 +6841,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6541,6 +6859,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6576,14 +6899,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6653,46 +6976,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Recuperada conexão servidor de modelo."
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "servidor de modelo perdido"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6731,12 +7054,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6781,44 +7104,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "Instância não encontrada"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6831,17 +7116,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6850,7 +7138,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6867,25 +7155,32 @@ msgstr ""
msgid "Internal error"
msgstr "Erro interno"
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr "Endereço |%(address)s| não está alocado"
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6895,22 +7190,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr "Endereço |%(address)s| não está alocado"
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6972,31 +7267,70 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "Instância não encontrada"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
-#, fuzzy, python-format
+#: nova/virt/driver.py:980
+#, fuzzy
msgid "Unable to load the virtualization driver"
msgstr "Não foi possível carregar o driver de virtualização: %s"
@@ -7156,22 +7490,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Começando a terminar instâncias"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Começando a terminar instâncias"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Obter saída do console para instância %s"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7191,7 +7525,7 @@ msgstr "Obter saída do console para instância %s"
msgid "PXE deploy failed for instance %s"
msgstr "tipo de instância %(instance_type)s é inválida."
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7201,28 +7535,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "tipo de instância %(instance_type)s é inválida."
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Obter saída do console para instância %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "tipo de instância %(instance_type)s é inválida."
@@ -7801,7 +8135,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7974,50 +8308,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "Removendo rede com id %s"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8157,12 +8491,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Começando a terminar instâncias"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8328,7 +8662,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "Obter saída do console para instância %s"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8362,243 +8696,243 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Falhou ao reiniciar instância"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Nenhuma rede definida."
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Nenhuma rede definida."
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "volume %s: criado com sucesso"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Falhou ao reiniciar instância"
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "Usuário não tem privilégios de administrador"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
"Solicitando à xapi para realizar upload da imagem %(vdi_uuids)s com ID "
"%(image_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8606,73 +8940,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Obtendo o tamanho da imagem para a imagem %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8680,50 +9014,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8733,67 +9067,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Falha de Autenticação: %s"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8826,11 +9160,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8991,7 +9325,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8999,17 +9333,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9097,52 +9431,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "group %s já existe"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9152,20 +9486,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9189,62 +9523,62 @@ msgstr "Iniciando a Bridge para %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Não é possível localizar o volume %s"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, fuzzy, python-format
msgid "Copying image to the device '%s'"
msgstr "Obtendo o tamanho da imagem para a imagem %s"
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "Falhou ao reiniciar instância"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Não é possível desconectar o volume %s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9290,7 +9624,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9441,27 +9775,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr "nenhuma partição encontrada"
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9527,18 +9861,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9876,54 +10210,54 @@ msgstr "Remover volume com id: %s"
msgid "Renamed the VM from %s"
msgstr "Não é possível localizar o volume %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -10046,107 +10380,111 @@ msgstr "Não foi possível criar volume"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "Ponto de montagem %(mountpoint)s desanexada da instância %(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "Atualizando agente para %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr "Configurar senha do administrador"
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr "Falhou em atualizar senha: %(resp)r"
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "Falhou em atualizar senha: %(resp)r"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "Erro de OpenSSL: %s"
@@ -10162,24 +10500,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10318,73 +10656,73 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_criar: %s"
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "O VBD não foi encontrado na instância %s"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "group %s já existe"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Não é possível desconectar o VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Não é possível destruir o VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "VBD %(vbd_ref)s criado para VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "VBD %(vbd_ref)s criado para VM %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10393,306 +10731,299 @@ msgstr ""
"VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) no SR "
"%(sr_ref)s criada com sucesso."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "Projeto %(project_id)s não foi encontrado."
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
"Solicitando à xapi para realizar upload da imagem %(vdi_uuids)s com ID "
"%(image_id)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Tamanho da imagem %(image)s:%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Copiando o VDI %s de /boot/guest no dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Kernel/Ramdisk %s destruidos"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "Falhou ao reiniciar instância"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "Verificando o vdi %s para kernel PV"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "O VDI %s continua disponível"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "Re-escaneando SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "O VHD %(vdi_uuid)s tem pai %(parent_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "Conectando VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "O VDB %s foi conectado."
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "Destruindo VBD para o VDI %s ... "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "O VBD para o VDI %s foi destruído."
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "Rodando pygrub novamente %s"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Kernel Xen encontrado: %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "Kernel Xen não encontrado. Iniciando como HVM."
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10700,62 +11031,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "Atualizando agente para %s"
@@ -10765,209 +11096,209 @@ msgstr "Atualizando agente para %s"
msgid "Importing image upload handler: %s"
msgstr "Iniciando a Bridge para %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "Iniciando instância %s"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Falha ao suspender instância"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Falhou ao reiniciar instância"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Criando a VIF para VM %(vm_ref)s, rede %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "Criando a VIF para VM %(vm_ref)s, rede %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -11048,7 +11379,7 @@ msgstr "Detach_volume: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "A instância %(instance_id)s não está executando."
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11056,7 +11387,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "NotFound lançado: %s"
@@ -11109,64 +11440,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/ro/LC_MESSAGES/nova.po b/nova/locale/ro/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..f7364fa45
--- /dev/null
+++ b/nova/locale/ro/LC_MESSAGES/nova.po
@@ -0,0 +1,11300 @@
+# Romanian translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-06-10 18:32+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Romanian "
+"(http://www.transifex.com/projects/p/openstack/language/ro/)\n"
+"Plural-Forms: nplurals=3; "
+"plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/ru/LC_MESSAGES/nova.po b/nova/locale/ru/LC_MESSAGES/nova.po
index 8b3d169fc..a3aed0f22 100644
--- a/nova/locale/ru/LC_MESSAGES/nova.po
+++ b/nova/locale/ru/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-03-25 09:34+0000\n"
"Last-Translator: Eugene Marshal <Unknown>\n"
"Language-Team: Russian <ru@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr "block_device_list %s"
@@ -164,90 +164,100 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "Том %(volume_id)s никуда не приÑоединён"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "ÐедопуÑтимый запроÑ."
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "ÐедопуÑтимый том"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr "ÐедопуÑтимые метаданные"
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "Ðеправильный ключ метаданных"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "ÐедопуÑтимый диапазон портов %(from_port)s:%(to_port)s. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "ÐедопуÑтимый протокол IP %(protocol)s."
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "ÐедопуÑтимый тип Ñодержимого %(content_type)s."
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "ÐедопуÑтимый cidr %(cidr)s."
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, fuzzy, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr "ДопуÑтимый узел не найден. %(reason)s"
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
@@ -256,86 +266,86 @@ msgstr ""
"ÐšÐ¾Ð¿Ð¸Ñ %(instance_uuid)s в %(attr)s %(state)s. Ðевозможно %(method)s во "
"Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ в Ñтом ÑоÑтоÑнии."
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не выполнÑетÑÑ."
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не переведена в режим воÑÑтановлениÑ"
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не переведена в режим воÑÑтановлениÑ"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не переведена в режим приоÑтановлениÑ."
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Ошибка приоÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ: %(resp)r"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Ðевозможно назначить пароль админиÑтратора. ÐšÐ¾Ð¿Ð¸Ñ %s не выполнÑетÑÑ"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Ðевозможно назначить пароль админиÑтратора. ÐšÐ¾Ð¿Ð¸Ñ %s не выполнÑетÑÑ"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Ошибка перезагрузки копии"
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "Ошибка перезагрузки копии"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Ошибка перезагрузки копии"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "Ð’ данный момент Ñлужба недоÑтупна."
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "Служба Compute недоÑтупна в наÑтоÑщее времÑ."
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr "Ðевозможно перемеÑтить копию (%(instance_id)s) на текущий узел (%(host)s)."
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr "Копии необходима Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð³Ð¸Ð¿ÐµÑ€Ð²Ð¸Ð·Ð¾Ñ€Ð°, вмеÑто предоÑтавленной."
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
@@ -344,38 +354,38 @@ msgstr ""
"ПредоÑтавленный Ð°Ð´Ñ€ÐµÑ Ð´Ð¸Ñка (%(path)s) уже ÑущеÑтвует, но ожидалоÑÑŒ, что "
"отÑутÑтвует."
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr "ÐедопуÑтимое размещение предоÑтавленного уÑтройÑтва (%(path)s)."
-#: nova/exception.py:383
+#: nova/exception.py:394
#, fuzzy, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr "ÐедопуÑтимое размещение предоÑтавленного уÑтройÑтва (%(path)s)."
-#: nova/exception.py:388
+#: nova/exception.py:399
#, fuzzy, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr "ÐедопуÑтимое размещение предоÑтавленного уÑтройÑтва (%(path)s)."
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "ÐедопуÑтимые ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¦ÐŸÐ£"
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым IP-адреÑом в4/6."
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -383,86 +393,86 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "Форматирование диÑка %(disk_format)s недопуÑтимо"
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr "Образ %(image_id)s недопуÑтим: %(reason)s"
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s недопуÑтима: %(reason)s"
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr "Ec2 id %(ec2_id)s недопуÑтим."
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "ÐедопуÑтимый cidr %(cidr)s."
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "ÐºÐ¾Ð¿Ð¸Ñ - %s не предÑтавлена"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr "РеÑÑƒÑ€Ñ Ð½Ðµ может быть найден."
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr "Том %(volume_id)s не найден."
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr "Снимок %(snapshot_id)s не может быть найден."
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr "ОтÑутÑтвует диÑк в %(location)s"
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr "Ðевозможно найти обработчик Ð´Ð»Ñ Ñ‚Ð¾Ð¼Ð° %(driver_type)s."
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr "ÐедопуÑтимый образ href %(image_href)s."
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr "Образ %(image_id)s не найден."
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -470,65 +480,65 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "Проект %(project_id)s не найден."
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr "Ðевозможно найти SR Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ/запиÑи VDI."
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "Сеть %(network_id)s не найдена."
-#: nova/exception.py:498
+#: nova/exception.py:509
#, fuzzy, python-format
msgid "Network %(network_id)s is still in use."
msgstr "Сеть %(network_id)s не найдена."
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr "%(req)s необходимо Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñети."
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "Сеть %(network_id)s не найдена."
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "Снимок %(snapshot_id)s не может быть найден."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr "Сеть не может быть найдена Ð´Ð»Ñ Ð¼Ð¾Ñта %(bridge)s"
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr "Сеть не может быть найдена Ð´Ð»Ñ uuid %(uuid)s"
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr "Сеть не найдена Ñ cidr %(cidr)s."
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr "Сеть не найдена Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "Сети не определены."
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
@@ -537,238 +547,238 @@ msgstr ""
"Или uuid %(network_uuid)s Ñети не предоÑтавлено или не приÑвоено проекту "
"%(project_id)s."
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, fuzzy, python-format
msgid "Port %(port_id)s is still in use."
msgstr "Сеть %(network_id)s не найдена."
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "Сеть не найдена Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/exception.py:551
+#: nova/exception.py:562
#, fuzzy, python-format
msgid "No free port available for instance %(instance)s."
msgstr "Сеть не найдена Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена"
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена"
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, fuzzy, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %(public_ip)s копии %(instance_id)s"
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr "ÐедопуÑтимый фикÑированный IP-Ð°Ð´Ñ€ÐµÑ %(address)s."
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "Тип тома %(name)s уже ÑущеÑтвует."
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr "ЗапиÑÑŒ DNS %(name)s уже ÑущеÑтвует в домене %(domain)s."
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "уÑтановка Ñетевого узла"
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ %(interface)s не найден."
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr "Сертификат %(certificate_id)s не найден."
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "Служба %(service_id)s не найдена."
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr "Узел %(host)s не найден."
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr "Узел Ñompute %(host)s не найден."
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr "Квота не найдена"
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr "Квота проекта %(project_id)s не найдена."
-#: nova/exception.py:707
+#: nova/exception.py:718
#, fuzzy, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr "КлаÑÑ %(class_name)s не найден: %(exception)s"
-#: nova/exception.py:711
+#: nova/exception.py:722
#, fuzzy, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr "Квота проекта %(project_id)s не найдена."
-#: nova/exception.py:715
+#: nova/exception.py:726
#, fuzzy, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr "Пользователь %(user_id)s не найден."
-#: nova/exception.py:719
+#: nova/exception.py:730
#, fuzzy, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr "РаÑширенный реÑурÑ: %s"
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr "Группа безопаÑноÑти %(security_group_id)s не найдена."
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
"Группа безопаÑноÑти %(security_group_id)s не найдена Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð° "
"%(project_id)s."
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr "Группа безопаÑноÑти Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾Ð¼ %(rule_id)s не найдена."
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
@@ -777,7 +787,7 @@ msgstr ""
"Группа безопаÑноÑти %(security_group_id)s уже аÑÑоциирована Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ "
"%(instance_id)s"
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
@@ -786,741 +796,727 @@ msgstr ""
"Группа безопаÑноÑти %(security_group_id)s не аÑÑоциирована Ñ ÐºÐ¾Ð¿Ð¸ÐµÐ¹ "
"%(instance_id)s"
-#: nova/exception.py:746
+#: nova/exception.py:757
#, fuzzy, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr "Группа безопаÑноÑти Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾Ð¼ %(rule_id)s не найдена."
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr "Перемещение %(migration_id)s не найдено."
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr "Перемещение не найдено Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s в ÑоÑтоÑнии %(status)s."
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr "Пул конÑоли %(pool_id)s не найден."
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr "КонÑоль %(console_id)s не найдена."
-#: nova/exception.py:783
+#: nova/exception.py:794
#, fuzzy, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "КонÑоль Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s не найдена."
-#: nova/exception.py:787
+#: nova/exception.py:798
#, fuzzy, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr "КонÑоль Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s в пуле %(pool_id)s не найдена."
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "ÐедопуÑтимый тип конÑоли %(console_type)s "
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr "Тип копии %(instance_type_id)s не найден."
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr "Тип копии Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼ %(instance_type_name)s не найден."
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "том группы %s не ÑущеÑтвует"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "Ðе найден том Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не имеет метаданных Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ %(metadata_key)s."
-#: nova/exception.py:855
+#: nova/exception.py:866
#, fuzzy, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не имеет метаданных Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ %(metadata_key)s."
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr "Файл %(file_path)s не может быть найден."
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
"Ðе найден виртуальный переключатель аÑÑоциированный Ñ Ñетевым адаптером "
"%(adapter)s."
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr "Сетевой адаптер %(adapter)s не может быть найден."
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr "КлаÑÑ %(class_name)s не найден: %(exception)s"
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr "ДейÑтвие не разрешено."
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
-msgstr ""
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(name)s уже ÑущеÑтвует."
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(name)s уже ÑущеÑтвует."
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "Тип копии %(name)s уже ÑущеÑтвует."
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "Тип копии %(name)s уже ÑущеÑтвует."
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, fuzzy, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr "%(path)s раÑполагаетÑÑ Ð½Ð° общедоÑтупном накопителе: %(reason)s"
-#: nova/exception.py:923
+#: nova/exception.py:934
#, fuzzy, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr "%(path)s раÑполагаетÑÑ Ð½Ð° общедоÑтупном накопителе: %(reason)s"
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr "Ошибка перемещениÑ"
-#: nova/exception.py:931
+#: nova/exception.py:942
#, fuzzy
msgid "Migration pre-check error"
msgstr "Ошибка перемещениÑ"
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr "Ðеправильное тело ÑообщениÑ: %(reason)s"
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr "Ðевозможно найти конфигурацию по адреÑу %(path)s"
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
#, fuzzy
msgid "When resizing, instances must change flavor!"
msgstr "При изменении размера, копии должны изменить размер!"
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr "Образ больше, чем допуÑтимо Ð´Ð»Ñ Ñтого типа копии"
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr "ÐедоÑтаточно памÑти на узле Ñети compute Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка %(uuid)s."
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr "ДопуÑтимый узел не найден. %(reason)s"
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr "Превышена квота"
-#: nova/exception.py:988
+#: nova/exception.py:995
#, fuzzy, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr "Превышена квота Ð´Ð»Ñ %(pid)s, попытка выполнить %(min_count)s копий"
-#: nova/exception.py:993
+#: nova/exception.py:1000
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:997
+#: nova/exception.py:1004
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, fuzzy, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
#, fuzzy
msgid "Maximum number of key pairs exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1021
+#: nova/exception.py:1028
#, fuzzy
msgid "Maximum number of security groups or rules exceeded"
msgstr "Выбрано макÑ. количеÑтво узлов (%d)"
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, fuzzy, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr "Ðевозможно назначить пароль админиÑтратора. ÐšÐ¾Ð¿Ð¸Ñ %s не выполнÑетÑÑ"
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена."
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "КонÑоль Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s не найдена."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "Том %(volume_id)s не найден."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "Снимок %(snapshot_id)s не может быть найден."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "Образ %(image_id)s не найден."
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "Получение образа %(image)s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "Получение образа %(image)s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена"
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "Выполнение запуÑка копий"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "Выполнение запуÑка копий"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "Подключить том %(volume_id)s Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s на %(device)s"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, fuzzy, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "Квота проекта %(project_id)s не найдена."
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, fuzzy, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "Проект %(project_id)s не найден."
-#: nova/exception.py:1170
+#: nova/exception.py:1177
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "set_admin_password не реализован в Ñтой драйвере."
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не переведена в режим воÑÑтановлениÑ"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не переведена в режим воÑÑтановлениÑ"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "Тип копии %(name)s уже ÑущеÑтвует."
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:62
-#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
-msgstr ""
+#: nova/exception.py:1225
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "ОжидалÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚ типа: %s"
-#: nova/hooks.py:70
+#: nova/exception.py:1229
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/notifications.py:232
-#, fuzzy
-msgid "Failed to get nw_info"
-msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð´Ð»Ñ ip: %s"
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1245
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1254
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1259
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/hooks.py:62
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "Полный набор ФЛÐГОВ:"
-
-#: nova/service.py:204
+#: nova/hooks.py:70
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
-#, fuzzy, python-format
-msgid "Caught %s, exiting"
-msgstr "Ñнимок %s: удаление"
-
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
+#: nova/notifications.py:232
+#, fuzzy
+msgid "Failed to get nw_info"
+msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð´Ð»Ñ ip: %s"
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "уÑтановка Ñетевого узла"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, fuzzy, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr "ЗапуÑк узла Ñети (верÑÐ¸Ñ %(vcs_string)s) %(topic)s"
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Служба завершила работу из-за отÑутÑÑ‚Ð²Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи базы данных"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "отладка в обратном вызове: %s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "ÐедопуÑтимый внутренний интерфейÑ: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr "ОжидалÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚ типа: %s"
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ server_string: %s"
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc: '%(name)s' занÑла %(total_time).2f Ñ."
-#: nova/utils.py:799
+#: nova/utils.py:797
#, fuzzy, python-format
msgid "Reloading cached file %s"
msgstr "Выгрузка образа %s"
@@ -1530,17 +1526,17 @@ msgstr "Выгрузка образа %s"
msgid "Could not remove tmpdir: %s"
msgstr "Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ‚ÐµÐ¹Ð½ÐµÑ€Ð°: %s"
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1748,7 +1744,7 @@ msgstr ""
"Произошла неизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. ПожалуйÑта, попытайтеÑÑŒ повторить ваш "
"запроÑ."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1772,6 +1768,7 @@ msgstr "Создание пары ключей %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1849,175 +1846,175 @@ msgid "Detach Volume Failed."
msgstr "ОтÑоединить том %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "аттрибут не поддерживаетÑÑ: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Выделить адреÑ"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
#, fuzzy
msgid "Unable to release IP Address."
msgstr "Ðевозможно найти Ð°Ð´Ñ€ÐµÑ %r"
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %(public_ip)s копии %(instance_id)s"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "Ðевозможно найти Ð°Ð´Ñ€ÐµÑ %r"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "Ðевозможно найти Ð°Ð´Ñ€ÐµÑ %r"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "ИÑключить Ð°Ð´Ñ€ÐµÑ %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr "Образ должен быть доÑтупен"
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "Выполнение Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "Перезагрузить копию %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr "Выполнение оÑтановки копий"
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr "Выполнение запуÑка копий"
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "ИÑключение региÑтрации образа %s"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "ЗарегиÑтрированный образ %(image_location)s Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ %(image_id)s"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "не указан пользователь или группа"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ группа \"вÑе(all)\""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "Обновление оÑведомлённоÑти об образе %s"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "Ðевозможно оÑтановить копию в течении %d Ñ."
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
#, fuzzy
msgid "Expecting a list of resources"
msgstr "Перечень копий"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ - %s не предÑтавлена"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "Перечень копий"
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
#, fuzzy
msgid "Invalid CIDR"
msgstr "ÐедопуÑтимый cidr %(cidr)s."
@@ -2069,26 +2066,26 @@ msgstr "ÐедопуÑтимый запроÑ: %s"
msgid "Failed to get metadata for instance id: %s"
msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð´Ð»Ñ ip: %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Обнаружена ошибка: %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr "%(url)s возвратил Ñ HTTP %(status)d"
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr "РаÑширенный реÑурÑ: %s"
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
@@ -2097,11 +2094,51 @@ msgstr ""
"РаÑширение %(ext_name)s: Ðевозможно раÑширить реÑÑƒÑ€Ñ %(collection)s: Ðет "
"такого реÑурÑа"
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr "РаÑширение %(ext_name)s раÑширение реÑурÑа: %(collection)s"
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, fuzzy, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr "Загрузка раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %s"
+
+#: nova/api/openstack/__init__.py:287
+#, fuzzy, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr "Загрузка раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %s"
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "Загрузка раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2126,6 +2163,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr "маркер [%s] не найден"
@@ -2176,21 +2214,25 @@ msgid "Loaded extension: %s"
msgstr "Загруженное раÑширение: %s"
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2201,6 +2243,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2220,12 +2263,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "Ошибка загрузки раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %(ext_factory)s: %(exc)s"
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, fuzzy, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr "Ошибка загрузки раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %(ext_name)s: %(exc)s"
@@ -2270,7 +2313,7 @@ msgstr "ПуÑтое тело предоÑтавлено в запроÑе"
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2285,20 +2328,23 @@ msgstr "Ðеправильное тело запроÑа"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "ВыполнÑетÑÑ Ð²Ñ‹Ð·Ð¾Ð² getter %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Ðе поддерживаемый тип Ñодержимого"
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
-msgstr "Ðеправильный Ð·Ð°Ð¿Ñ€Ð¾Ñ url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2370,10 +2416,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ ÑущеÑтвует"
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ ÑвлÑетÑÑ ÑƒÑ‡Ð°Ñтником заданной Ñети"
@@ -2402,224 +2450,299 @@ msgid "Metadata item was not found"
msgstr "Элемент метаданных не найден"
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "Выполнение запуÑка копий"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "Узел %(host)s не найден."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ найдена"
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
#, fuzzy
msgid "Unknown argment : port"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ°: %r"
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, fuzzy, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr "ÐедопуÑтимый Ñетевой формат: Ñетевой uuid имеет неправильный формат (%s)"
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr "ÐедопуÑтимый Ñетевой формат: Ñетевой uuid имеет неправильный формат (%s)"
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "ÐедопуÑтимый фикÑированный IP-Ð°Ð´Ñ€ÐµÑ (%s)"
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Дубликаты Ñетей (%s) не разрешены"
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr "ÐедопуÑтимый Ñетевой формат: отÑутÑтвует %s"
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr "ÐедопуÑтимый Ñетевой формат"
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr "Содержимое данных Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ может быть дешифровано"
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr "Ð˜Ð¼Ñ Ñервера не задано"
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr "ПредоÑтавлен недопуÑтимый flavorRef."
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr "Ðевозможно найти запрошенный образ"
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr "ПредоÑтавлен недопуÑтимый key_name."
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "Точка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ðµ может быть переведена: %s"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "Точка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ðµ может быть переведена: %s"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr "С копией не производилоÑÑŒ изменение размера."
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr "ОтÑутÑтвует аргумент типа 'type' Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸"
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
#, fuzzy
msgid "Resize requires a flavor change."
msgstr "Изменение размера требует Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÑ‘Ð¼Ð°."
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr "ОтÑутÑтвует атрибут imageRef"
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr "ОтÑутÑтвует атрибут flavorRef"
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr "adminPass не был задан"
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr "ÐедопуÑтимый adminPass"
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Ошибка перезагрузки копии"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° имеет недопуÑтимый атрибут 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr "ЗапроÑÑ‹ изменение размера требуют атрибут 'flavorRef'."
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, fuzzy, python-format
msgid "Removing options '%s' from query"
msgstr "Удаление параметров '%(unk_opt_str)s' из запроÑа"
@@ -2794,30 +2917,35 @@ msgstr "ЗапуÑк интерфейÑа VLAN %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Правило (%s) не найдено"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
#, fuzzy
msgid "Cell name cannot be empty"
msgstr "Ðаименование группы безопаÑноÑти не может отÑутÑтвовать"
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
#, fuzzy
msgid "No cell information in request"
msgstr "block_device_mapping %s"
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2913,14 +3041,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr "Ошибка Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %s"
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Сертификат %(certificate_id)s не найден."
@@ -2971,7 +3099,7 @@ msgstr "Тип тома %(name)s уже ÑущеÑтвует."
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3103,11 +3231,6 @@ msgstr "Пользователь %(user_id)s не найден."
msgid "Invalid timestamp for date %s"
msgstr "ÐедопуÑтимые метаданные"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr "ОтÑутÑтвует аргумент 'networkId' Ð´Ð»Ñ addFixedIp"
@@ -3224,16 +3347,16 @@ msgstr "Добавление правила группы безопаÑноÑÑ‚Ð
msgid "Create networks failed"
msgstr "Ошибка ÑозданиÑ"
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3243,7 +3366,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "ÐедоÑтаточно параметров Ð´Ð»Ñ Ñбора правильного правила."
@@ -3262,16 +3385,16 @@ msgstr "Отображение Ñети Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ %s"
msgid "security group default rule not found"
msgstr "Группа безопаÑноÑти Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾Ð¼ %(rule_id)s не найдена."
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, fuzzy, python-format
msgid "Bad prefix for network in cidr %s"
msgstr "ÐедопуÑтимый Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ñ to_global_ipv6: %s"
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr "Группа безопаÑноÑти не задана"
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr "Ðаименование группы безопаÑноÑти не может отÑутÑтвовать"
@@ -3285,12 +3408,12 @@ msgstr "ЗапуÑк копии %s"
msgid "stop instance"
msgstr "Выполнение оÑтановки копий"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ñ†ÐµÐ¿Ð¾Ñ‡ÐºÐ°: %r"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
#, fuzzy
msgid "Unknown service"
msgstr "Ошибка аутентификации"
@@ -3340,16 +3463,45 @@ msgstr "Создать Ñнимок из тома %s"
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "Загруженное раÑширение: %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, fuzzy, python-format
+msgid "Ext version: %i"
+msgstr "ВерÑÐ¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° копии: %s"
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3359,124 +3511,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "не определен метод Ð´Ð»Ñ ÑообщениÑ: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, fuzzy, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr "Ошибка загрузки раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %(ext_factory)s: %(exc)s"
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "не определен метод Ð´Ð»Ñ ÑообщениÑ: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, fuzzy, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr "Выгрузка образа %s"
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "Перемещение не найдено Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s в ÑоÑтоÑнии %(status)s."
+msgid "Got update for instance: %(instance)s"
+msgstr "Ðе найден том Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "Ðе найден том Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "Ðе найден том Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3875,26 +4060,36 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
#, fuzzy
msgid "Cannot run any more instances of this type."
msgstr ""
"Превышена квота копий. Ð’Ñ‹ не можете запуÑтить дополнительные копии Ñтого "
"типа."
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr "Превышена квота копий. Ð’Ñ‹ можете запуÑтить только %s копий Ñтого типа."
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, fuzzy, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr "Превышена квота Ð´Ð»Ñ %(pid)s, попытка выполнить %(min_count)s копий"
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
@@ -3903,97 +4098,97 @@ msgstr ""
"Превышена квота Ð´Ð»Ñ %(pid)s, попытка назначить %(num_metadata)s ÑвойÑтв "
"метаданных"
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "Ðевозможно приÑоединить том Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "ВыполнÑет запуÑк %s копий..."
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Выполнение Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "Тип копии %(instance_type_id)s не найден."
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Выполнение Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, fuzzy, python-format
msgid "instance's host %s is down, deleting from database"
msgstr "ОтÑутÑтвует узел Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s, немедленное удаление"
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "Выполнение запуÑка копий"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "Будет Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° завершить работу %s"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "Попытка оÑтановить %s"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "Попытка запуÑтить %s"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr "ПоиÑк по: %s"
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "ЗапуÑк Ñнимка Ð´Ð»Ñ Ð’Ðœ %s"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -4002,62 +4197,63 @@ msgstr ""
"УÑтаревший тип копии %(current_instance_type_name)s, новый тип копии "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, fuzzy, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr "Превышена квота Ð´Ð»Ñ %(pid)s, попытка выполнить %(min_count)s копий"
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "Будет Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° завершить работу %s"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr "Группа безопаÑноÑти %s не может быть пуÑтой."
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, fuzzy, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
@@ -4066,65 +4262,70 @@ msgstr ""
"Значение (%s) Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° GroupName недопуÑтимо. Длина превышает "
"макÑимально допуÑтимое значение 255."
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "Создать группу безопаÑноÑти %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr "Группа безопаÑноÑти %s уже ÑущеÑтвует"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Ðевозможно ликвидировать vbd %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "Ðевозможно ликвидировать vbd %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "Группа безопаÑноÑти (%s) не найдена"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr "Правило (%s) не найдено"
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
#, fuzzy
msgid "Quota exceeded, too many security group rules."
msgstr "Добавление правила группы безопаÑноÑти: %r"
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4228,265 +4429,252 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr "Ðевозможно перемеÑтить копию (%(instance_id)s) на текущий узел (%(host)s)."
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Ошибка перезагрузки копии"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
#, fuzzy
msgid "Hypervisor driver does not support resume guests"
msgstr "Драйвер гипервизора не поддерживает правила брандмауÑра"
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Ошибка приоÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "Драйвер гипервизора не поддерживает правила брандмауÑра"
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "Ðепредвиденный код ÑоÑтоÑниÑ"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "Выполнение запуÑка копий"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Ошибка БД: %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-"Образ '%(image_id)s' размером %(size_bytes)d, превышает exceeded "
-"instance_type допуÑтимый размер %(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "уÑтановка Ñетевого узла"
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr ""
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Выполнение запуÑка копий"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr "ПропуÑк DiskNotFound: %s"
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, fuzzy, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "ПропуÑк DiskNotFound: %s"
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "завершение работы bdm %s"
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s. УÑтановка ÑоÑтоÑÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ vm_state на ERROR"
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "Обновление Ñборки %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, fuzzy, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr "%(path)s раÑполагаетÑÑ Ð½Ð° общедоÑтупном накопителе: %(reason)s"
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Создать Ñнимок из тома %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "Перезагрузка копии %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, fuzzy, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
@@ -4495,22 +4683,22 @@ msgstr ""
"попытка перезагрузки не выполнÑемой копии: %(instance_uuid)s (ÑоÑтоÑние: "
"%(state)s ожидалоÑÑŒ: %(running)s)"
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "Обновление Ñборки %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ включена"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: выполнение Ñнимка"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, fuzzy, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
@@ -4519,224 +4707,229 @@ msgstr ""
"попытка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñнимка не выполнÑемой копии: %(instance_uuid)s "
"(ÑоÑтоÑние: %(state)s ожидалоÑÑŒ: %(running)s)"
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "Ðайдено %(num_images)d образов (ротациÑ: %(rotation)d)"
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr "Удаление образа %s"
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr "Ðевозможно назначить пароль админиÑтратора. ÐšÐ¾Ð¿Ð¸Ñ %s не выполнÑетÑÑ"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
#, fuzzy
msgid "Root password set"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %s: Ðазначение админиÑтративного паролÑ"
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
#, fuzzy
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr "set_admin_password не реализован в Ñтой драйвере."
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, fuzzy, python-format
msgid "set_admin_password failed: %s"
msgstr "set_admin_password не реализован в Ñтой драйвере."
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
#, fuzzy
msgid "error setting admin password"
msgstr "Ошибка Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора"
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Ошибка приоÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Ошибка БД: %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "%s. УÑтановка ÑоÑтоÑÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ vm_state на ERROR"
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ ÑущеÑтвует"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr "назначение Ñовпадает Ñ Ð¸Ñточником!"
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: принÑтие диагноÑтики"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "ВоÑÑтановление Ñети"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
#, fuzzy
msgid "Inject network info"
msgstr "уÑтановка Ñетевого узла"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "Получить конÑольный вывод Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
#, fuzzy
msgid "Getting vnc console"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: получение конÑоли vnc"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ %s: получение конÑоли vnc"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "ОтÑоединение тома от неизвеÑтной копии %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "Попытка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÑущеÑтвующей конÑоли %(console_id)s."
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, fuzzy, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr "Ñетевые раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "Сеть %(network_id)s не найдена."
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "Узел %(host)s не найден."
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
#, fuzzy
msgid "_post_live_migration() is started.."
msgstr "Запущено post_live_migration().."
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4745,21 +4938,21 @@ msgstr ""
"отÑутÑтвует домен Ñ ÑоответÑтвующим именем.\" Эта ошибка может быть "
"безопаÑно пропущена."
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
#, fuzzy
msgid "Post operation of migration started"
msgstr "Запущено post_live_migration().."
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð´Ð»Ñ ip: %s"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
@@ -4768,64 +4961,64 @@ msgstr ""
"Ðайдены %(migration_count)d неподтверждённых перемещений, Ñтарше "
"%(confirm_window)d Ñекунд"
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, fuzzy, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr "Завершение работы ВМ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_uuid)s"
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена"
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
#, fuzzy
msgid "In ERROR state"
msgstr "Ошибка БД: %s"
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr "Обновление временных данных иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»Ð¾ÑÑ‹ пропуÑканиÑ"
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Обновление временных данных иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»Ð¾ÑÑ‹ пропуÑканиÑ"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr "Обновление ÑоÑтоÑÐ½Ð¸Ñ ÑƒÐ·Ð»Ð°"
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4834,88 +5027,88 @@ msgstr ""
"Ðайдено %(num_db_instances)s в базе данных и %(num_vm_instances)s в "
"гипервизоре."
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ включена"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0, пропуÑк..."
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "LoggingVolumeDriver: %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, fuzzy, python-format
msgid "No service record for host %s"
msgstr "Ðет Ñлужбы Ð´Ð»Ñ compute ID %s"
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, fuzzy, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
"Ðе раÑпознанное значение '%(action)s' Ð´Ð»Ñ "
"FLAGS.running_deleted_instance_action"
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "%s. УÑтановка ÑоÑтоÑÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ vm_state на ERROR"
@@ -5031,18 +5224,18 @@ msgstr "Ðевозможно найти узел Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5123,56 +5316,72 @@ msgstr "Проверка токена: %(token)s, %(token_valid)s)"
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Ошибка перезагрузки копии"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Ошибка перезагрузки копии"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr "ÐераÑпознанное значение read_deleted '%s'"
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "ÐедопуÑтимый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ‚ÐµÐ»Ð°"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5189,56 +5398,61 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+#, fuzzy
+msgid "Unsupported id columns type"
+msgstr "Ðе поддерживаемый тип Ñодержимого"
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5274,32 +5488,37 @@ msgstr "Ошибка загрузки %(image_location)s в %(image_path)s"
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr "Ошибка раÑÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ %(image_location)s в %(image_path)s"
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr "Ошибка Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ %(image_location)s в %(image_path)s"
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr "Ошибка выгрузки %(image_location)s в %(image_path)s"
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "Ошибка Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð»Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ключа: %s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "Ошибка Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð° инициализации: %s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "Ошибка Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° образа %(image_file)s: %(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr "Ð’ образе небезопаÑные имена файлов"
@@ -5318,16 +5537,20 @@ msgstr "ÐедопуÑтимый Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ñ to_global_ipv6: %s"
msgid "Bad project_id for to_global_ipv6: %s"
msgstr "ÐедопуÑтимый project_id Ð´Ð»Ñ to_global_ipv6: %s"
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Ошибка перезагрузки копии"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, fuzzy, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "ПриÑвоить Ð°Ð´Ñ€ÐµÑ %(public_ip)s копии %(instance_id)s"
@@ -5479,67 +5702,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "ÐедопуÑтимое ÑоÑтоÑние: '%s'"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "ЗапуÑк интерфейÑа VLAN %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "ЗапуÑк копии %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, fuzzy, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr "Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ %(interface)s не найден"
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "Ошибка приоÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "ЗапуÑк копии %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "Ошибка запуÑка xvp: %s"
@@ -5713,80 +5936,80 @@ msgstr "_удалить: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
-msgstr ""
+#: nova/network/quantumv2/__init__.py:67
+#, fuzzy
+msgid "quantum authentication failed"
+msgstr "Ошибка аутентификации"
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, fuzzy, python-format
msgid "allocate_for_instance() for %s"
msgstr "Ñетевые раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "Ñетевые раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Узел не найден"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, fuzzy, python-format
msgid "deallocate_for_instance() for %s"
msgstr "иÑключение Ñетевых раÑпределений Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ |%s|"
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, fuzzy, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr "Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° в базе данных"
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, fuzzy, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr "Ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° в базе данных"
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, fuzzy, python-format
msgid "validate_networks() for %s"
msgstr "ÐедопуÑтимый Ñетевой формат"
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "уÑтановка Ñетевого узла"
@@ -5796,70 +6019,75 @@ msgstr "уÑтановка Ñетевого узла"
msgid "Quantum Error creating security group %s"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Удалить группу безопаÑноÑти %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Обнаружена ошибка: %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Группа безопаÑноÑти (%s) не найдена"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Удалить группу безопаÑноÑти %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Обнаружена ошибка: %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "Группа безопаÑноÑти Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð¾Ð¼ %(rule_id)s не найдена."
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, fuzzy, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
"Группа безопаÑноÑти %(security_group_id)s не найдена Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð° "
"%(project_id)s."
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5873,6 +6101,26 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Это правило уже ÑущеÑтвует в группе %s"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "Ошибка Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора"
+
+#: nova/objects/base.py:145
+#, fuzzy
+msgid "Invalid version string"
+msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ server_string: %s"
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, fuzzy, python-format
msgid "Original exception being dropped: %s"
@@ -5908,17 +6156,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "ÐÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, fuzzy, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr "КлаÑÑ %(fullname)s уÑтарел: %(msg)s"
@@ -6015,21 +6263,78 @@ msgstr "Среда не поддерживаетÑÑ Ñ Ð¸Ñпользовани
msgid "process_input not supported over SSH"
msgstr "process_input не поддерживаетÑÑ Ñ Ð¸Ñпользованием SSH"
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "Полный набор ФЛÐГОВ:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, fuzzy, python-format
+msgid "Caught %s, exiting"
+msgstr "Ñнимок %s: удаление"
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, fuzzy, python-format
+msgid "Starting %d workers"
+msgstr "уÑтановка Ñетевого узла"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, fuzzy, python-format
msgid "SQL connection failed. %s attempts left."
msgstr "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ SQL (%(connstring)s). %(attempts)d попыток оÑталоÑÑŒ."
@@ -6208,18 +6513,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "Возврат иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ %s вызывающему"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6252,44 +6562,44 @@ msgstr ""
"попытка через %(sleep_time)d Ñекунд."
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr "Ошибка объÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»ÑŽ темы '%(topic)s': %(err_str)s"
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr "Ошибка принÑÑ‚Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð· очереди: %s"
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr "Ошибка публикации ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² тему '%(topic)s': %(err_str)s"
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, fuzzy, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr "Ðевозможно подключитьÑÑ Ðº Ñерверу AMQP: %s "
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6558,38 +6868,38 @@ msgstr "Попытка Ñобрать %(num_instances)d копию(й)"
msgid "Request Spec: %s"
msgstr "ЗапроÑ: %s"
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "Ðе найден том Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_id)s."
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "Отфильтрованы %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, fuzzy, python-format
msgid "Weighed %(hosts)s"
msgstr "Отфильтрованы %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr "Ðевозможно перемеÑтить копию (%(instance_id)s) на текущий узел (%(host)s)."
@@ -6661,10 +6971,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6672,6 +6989,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6707,14 +7029,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6784,47 +7106,47 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
#, fuzzy
msgid "memcached_servers not defined"
msgstr "Ð˜Ð¼Ñ Ñервера не задано"
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6863,12 +7185,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6913,44 +7235,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "маркер [%s] не найден"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr "Создание файлов в %s Ð´Ð»Ñ Ð¸Ð¼Ð¸Ñ‚Ð°Ñ†Ð¸Ð¸ гоÑтевого агента"
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr "Удаление файлов имитации гоÑтевого агента в %s"
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6963,18 +7247,21 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
#, fuzzy
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr "Превышена квота Ð´Ð»Ñ %(pid)s, попытка выполнить %(min_count)s копий"
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6983,7 +7270,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "ВыполнÑемые копии: %s"
@@ -7000,26 +7287,33 @@ msgstr "ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий: %s"
msgid "Internal error"
msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr "ПоÑле принудительного Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ копий: %s"
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
#, fuzzy
msgid "spawn error"
msgstr "Ошибка аутентификации"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr "ÐÐ´Ñ€ÐµÑ |%(address)s| не выделен"
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -7029,22 +7323,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr "ÐÐ´Ñ€ÐµÑ |%(address)s| не выделен"
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -7109,31 +7403,70 @@ msgstr "Ðепредвиденный код ÑоÑтоÑниÑ"
msgid "Decoding JSON: %s"
msgstr "Декодирование JSON: %s"
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "маркер [%s] не найден"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr "Создание файлов в %s Ð´Ð»Ñ Ð¸Ð¼Ð¸Ñ‚Ð°Ñ†Ð¸Ð¸ гоÑтевого агента"
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr "Удаление файлов имитации гоÑтевого агента в %s"
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, fuzzy, python-format
msgid "Loading compute driver '%s'"
msgstr "LoggingVolumeDriver: %s"
-#: nova/virt/driver.py:962
-#, fuzzy, python-format
+#: nova/virt/driver.py:980
+#, fuzzy
msgid "Unable to load the virtualization driver"
msgstr "Ðевозможно загрузить драйвер виртуализации: %s"
@@ -7288,22 +7621,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "Перечень копий"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "Перечень копий"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "Создание Ñнимка копии ВМ %s "
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7323,7 +7656,7 @@ msgstr "Получить конÑольный вывод Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
msgid "PXE deploy failed for instance %s"
msgstr "Ñетевые раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7333,28 +7666,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "Ñетевые раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "Получить конÑольный вывод Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "Ðевозможно найти узел Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
@@ -7935,7 +8268,7 @@ msgstr "ВерÑÐ¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° копии: %s"
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -8114,50 +8447,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "уÑтановка Ñетевого узла"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8297,12 +8630,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "Перечень копий"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, fuzzy, python-format
msgid "Creating config drive at %(path)s"
msgstr "Ðевозможно найти конфигурацию по адреÑу %(path)s"
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, fuzzy, python-format
msgid "Creating config drive failed with error: %s"
msgstr "Ðевозможно найти конфигурацию по адреÑу %(path)s"
@@ -8468,7 +8801,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr "Создание Ñнимка копии ВМ %s "
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8502,241 +8835,241 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr "Ошибка поиÑка vbd Ð´Ð»Ñ vdi %s"
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "Подключение к libvirt: %s"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "том группы %s не ÑущеÑтвует"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "Ðеполадка Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸ÐµÐ¼ к libvirt"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "Подключение к libvirt: %s"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Выполнение оÑтановки копий"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, fuzzy, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr "Ошибка schedule_%(method)s: %(ex)s"
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Сети не определены."
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Сети не определены."
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "Ñнимок %s: Ñоздание завершено"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "Ошибка перезагрузки копии"
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "Пользователь не имеет админиÑтративных привилегий"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "Создание изображениÑ"
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ xapi на приём образа vhd %(image)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8744,12 +9077,12 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
@@ -8758,27 +9091,27 @@ msgstr ""
"Ошибка libvirt во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð¸Ñка %(instance_name)s: [Код ошибки "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
#, fuzzy
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
@@ -8787,35 +9120,35 @@ msgstr ""
"Ðевозможно получить количеÑтво ЦПУ, так как Ñта возможноÑть не "
"реализована Ð´Ð»Ñ Ñтой платформы. Эту ошибку можно безопаÑно пропуÑтить."
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr "уÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ð²ÐµÑ€ÑÐ¸Ñ libvirt (не поддерживаетÑÑ getVersion)"
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "Получение размера образа Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð·Ð° %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8823,21 +9156,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8846,29 +9179,29 @@ msgstr ""
"Создание временного файла %s Ð´Ð»Ñ Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… узлов Ñети compute о "
"необходимоÑти приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð³Ð¾ же хранилища."
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8878,7 +9211,7 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8887,22 +9220,22 @@ msgstr ""
"Создание временного файла %s Ð´Ð»Ñ Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… узлов Ñети compute о "
"необходимоÑти приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð³Ð¾ же хранилища."
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "Ошибка аутентификации: %s"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, fuzzy, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr "plug_vifs() ошибка %(cnt)d.До %(max_retry)d попыток Ð´Ð»Ñ %(hostname)s."
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, fuzzy, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
@@ -8911,39 +9244,39 @@ msgstr ""
"Ошибка libvirt во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð¸Ñка %(instance_name)s: [Код ошибки "
"%(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
#, fuzzy
msgid "Instance running successfully."
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %s: выполнение"
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8978,11 +9311,11 @@ msgstr "nwfilter(%(instance_filter_name)s) длÑ%(name)s не найден."
msgid "iptables firewall: Setup Basic Filtering"
msgstr "БрандмауÑÑ€ iptables: ÐаÑтройка базовой фильтрации"
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, fuzzy, python-format
msgid "Unknown image_type=%s"
msgstr "неизвеÑтный обработчик образа диÑка: %s"
@@ -9143,7 +9476,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -9151,17 +9484,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9252,48 +9585,48 @@ msgstr ""
"Том ISCSI не найден в: %(mount_device)s. Будет выполнена Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ "
"проверка и попытка. Повторение: %(tries)s"
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, fuzzy, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr "Ðайден узел iSCSI %(mount_device)s (поÑле %(tries)s повторных проверок)"
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "образ уже приÑоединён"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "iSCSI-уÑтройÑтво не найдено в %s"
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, fuzzy, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
"Том ISCSI не найден в: %(mount_device)s. Будет выполнена Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ "
"проверка и попытка. Повторение: %(tries)s"
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, fuzzy, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr "Ðайден узел iSCSI %(mount_device)s (поÑле %(tries)s повторных проверок)"
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "iSCSI-уÑтройÑтво не найдено в %s"
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, fuzzy, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
@@ -9302,7 +9635,7 @@ msgstr ""
"Том ISCSI не найден в: %(mount_device)s. Будет выполнена Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ "
"проверка и попытка. Повторение: %(tries)s"
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, fuzzy, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr "Ðайден узел iSCSI %(mount_device)s (поÑле %(tries)s повторных проверок)"
@@ -9312,20 +9645,20 @@ msgstr "Ðайден узел iSCSI %(mount_device)s (поÑле %(tries)s поÐ
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9349,62 +9682,62 @@ msgstr "ЗапуÑк моÑта интерфейÑа Ð´Ð»Ñ %s"
msgid "Ensuring image '%s' exists on IVM"
msgstr "Выгрузка образа %s"
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "Ñоздание sr в volume_utils"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, fuzzy, python-format
msgid "Copying image to the device '%s'"
msgstr "Получение размера образа Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð·Ð° %s"
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "Ошибка перезагрузки копии"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "Ðевозможно иÑпользовать глобальные Ð¿Ð¾Ð»Ð½Ð¾Ð¼Ð¾Ñ‡Ð¸Ñ %(role_id)s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9451,7 +9784,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9606,27 +9939,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr "маркер [%s] не найден"
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr "Ð’ vmwareapi:_create_session, принÑто Ñто иÑключение: %s"
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr "Ð’ vmwareapi:_call_method, принÑто Ñто иÑключение: %s"
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr "СоÑтоÑние задачи [%(task_name)s] %(task_ref)s: готово"
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr "СоÑтоÑние задачи [%(task_name)s] %(task_ref)s: ошибка %(error_info)s"
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr "Ð’ vmwareapi:_poll_task, принÑта Ñта ошибка %s"
@@ -9693,18 +10026,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -10062,54 +10395,54 @@ msgstr "Удалить том Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼: %s"
msgid "Renamed the VM from %s"
msgstr "Создать том из Ñнимка %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, fuzzy, python-format
msgid "Automatically hard rebooting %d"
msgstr "ÐвтоматичеÑÐºÐ°Ñ Ð±ÐµÐ·Ð¾Ñ‚ÐºÐ°Ð·Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° %d"
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr "Создание папки Ñ Ð°Ð´Ñ€ÐµÑом %s"
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr "Создана папка Ñ Ð°Ð´Ñ€ÐµÑом %s"
@@ -10232,14 +10565,14 @@ msgstr "Ошибка поиÑка тома в базе данных"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "Точка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ %(mountpoint)s отÑоединена от копии %(instance_name)s"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, fuzzy, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
"ВРЕМЯ ПРОСТОЯ: Срок вызова %(method)s иÑтёк. VM id=%(instance_uuid)s; "
"args=%(args)r"
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, fuzzy, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
@@ -10248,12 +10581,12 @@ msgstr ""
"ÐЕ РЕÐЛИЗОВÐÐО: Вызов %(method)s не поддерживаетÑÑ Ð°Ð³ÐµÐ½Ñ‚Ð¾Ð¼. VM "
"id=%(instance_uuid)s; args=%(args)r"
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, fuzzy, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr "Вызов %(method)s возвратил ошибку: %(e)s."
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, fuzzy, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
@@ -10262,83 +10595,87 @@ msgstr ""
"Вызов агентом %(method)s возвратил недопуÑтимый ответ: %(ret)r. VM "
"id=%(instance_uuid)s; path=%(path)s; args=%(addl_args)r"
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr "Ошибка запроÑа верÑии агента: %(resp)r"
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð²ÐµÑ€Ñии агента"
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "Обновление агента до %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð°: %(resp)r"
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr "ÐаÑтройка Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора"
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr "Ошибка обмена ключей: %(resp)r"
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ: %(resp)r"
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr "ВоÑÑтановление Ñети"
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ: %(resp)r"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr "СредÑтва XenServer не уÑтановлены в Ñтот образ"
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "Ошибка OpenSSL: %s"
@@ -10358,26 +10695,26 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "Ошибка Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð»Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ключа: %s"
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr "ЗапуÑк узла на XenServer не поддерживаетÑÑ."
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
"Ðевозможно выполнить вход в XenAPI (недоÑтаточно Ñвободного меÑта на "
"Dom0?)"
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "ИÑключение: %s"
@@ -10517,73 +10854,73 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_Ñоздать: %s"
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "VBD не найдено Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %s"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "группа %s уже ÑущеÑтвует"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "Ðевозможно отÑоединить VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "Ðевозможно ликвидировать VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "Создана VBD %(vbd_ref)s Ð´Ð»Ñ Ð’Ðœ %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "Создана VBD %(vbd_ref)s Ð´Ð»Ñ Ð’Ðœ %(vm_ref)s, VDI %(vdi_ref)s."
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr "Ðевозможно ликвидировать VDI %s"
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10592,107 +10929,100 @@ msgstr ""
"Создан VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) "
"на %(sr_ref)s."
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð½Ðµ найдена"
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, fuzzy, python-format
msgid "block device info: %s"
msgstr "block_device_list %s"
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, fuzzy, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr "ОтÑутÑтвует первичный VDI длÑ%(vm_ref)s"
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "ЗапуÑк Ñнимка Ð´Ð»Ñ Ð’Ðœ %s"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, fuzzy, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
"xapi 'download_vhd' возвратил VDI типа '%(vdi_type)s' Ñ UUID "
"'%(vdi_uuid)s'"
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ xapi на приём образа vhd %(image)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+#: nova/virt/xenapi/vm_utils.py:1206
+#, fuzzy, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
"Размер образа %(size_bytes)d превышает допуÑтимый instance_type размер "
"%(allowed_size_bytes)d"
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, fuzzy, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr "Получение образа %(image)s"
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "Ядро не найдено Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð·Ð° %(image_id)s."
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
@@ -10701,204 +11031,204 @@ msgstr ""
"Превышен размер Ñдра/Ramdisk образа: %(vdi_size)d байт, макÑ. "
"%(max_size)d байт"
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "Копирование VDI %s в /boot/guest на dom0"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "Ядро/Ramdisk VDI %s ликвидирован"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "Ошибка перезагрузки копии"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr "Обнаружен %(image_type_str)s формат Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð·Ð° %(image_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "ПоиÑк vdi %s Ð´Ð»Ñ Ñдра PV"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr "ÐеизвеÑтный формат образа %(disk_image_type)s"
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s до Ñих пор доÑтупен"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° SR %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr "Ðевозможно найти SR типа Ñодержимого ISO"
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr "ISO: поиÑк SR %(sr_rec)s"
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO: не Ñодержимое iso типа"
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr "ISO: SR Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð¹ PBD"
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ Ñоздании уÑтройÑтва %s"
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "ПодÑоединение VBD %s ... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "ПодÑоединение VBD %s выполнено."
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr "VBD %(vbd_ref)s подÑоединено как %(orig_dev)s"
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
"VBD %(vbd_ref)s подÑоединено в неправильный dev, изменение Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð° "
"%(dev)s"
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "Ликвидирование VBD Ð´Ð»Ñ VDI %s ... "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "Ликвидирование VBD Ð´Ð»Ñ VDI %s завершено."
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "Ðайдено Ñдро Xen %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "Ядро Xen не найдено. Загрузка HVM."
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10906,16 +11236,16 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "Разделы:"
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr " %(num)s: %(ptype)s %(size)d Ñекторов"
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
@@ -10924,48 +11254,48 @@ msgstr ""
"ЗапиÑÑŒ таблицы разделов %(primary_first)d %(primary_last)d в "
"%(dev_path)s..."
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "ЗапиÑÑŒ таблицы разделов %s выполнена."
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
"Ошибка приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ð¹ ÑиÑтемы (ожидаемо Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¹ не на базе "
"linux): %s"
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "Обновление Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ '%(instance_uuid)s' до %(progress)d"
@@ -10975,226 +11305,226 @@ msgstr "Обновление Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ '%(instance_uuid)s'
msgid "Importing image upload handler: %s"
msgstr "ЗапуÑк моÑта интерфейÑа Ð´Ð»Ñ %s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "ЗапуÑк копии %s"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr "Удаление Ñдра/ramdisk файлов из dom0"
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, fuzzy, python-format
msgid "Block device information present: %s"
msgstr "block_device_mapping %s"
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð¼Ð° в базе данных"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
#, fuzzy
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
"ÐвтоматичеÑÐºÐ°Ñ Ð½Ð°Ñтройка диÑка Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_uuid)s, выполнÑетÑÑ "
"попытка Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° раздела..."
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
#, fuzzy
msgid "Starting VM"
msgstr "Выполнение перезагрузки xvp"
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr "ВерÑÐ¸Ñ Ð°Ð³ÐµÐ½Ñ‚Ð° копии: %s"
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, fuzzy, python-format
msgid "Could not find VM with name %s"
msgstr "Ðевозможно найти конфигурацию по адреÑу %(path)s"
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "Готовый Ñнимок и выгрузка Ð´Ð»Ñ Ð’Ðœ %s"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr "Ошибка Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ vhd на новый узел"
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Ошибка перезагрузки копии"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr "Изменение размера VDI %(vdi_uuid)s Ñ %(old_gb)dГБ до %(new_gb)dГБ"
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
#, fuzzy
msgid "Resize complete"
msgstr "Изменение размера копии %s завершено"
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
#, fuzzy
msgid "Unable to find root VBD/VDI for VM"
msgstr "Ошибка поиÑка vbd Ð´Ð»Ñ vdi %s"
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "Выполнение перезагрузки xvp"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
#, fuzzy
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
"ÐšÐ¾Ð¿Ð¸Ñ %(instance_uuid)s иÑпользует RAW или VHD, пропуÑк Ñдра и удаление "
"ramdisk"
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr "ÐºÐ¾Ð¿Ð¸Ñ Ñодержит Ñдро или ramdisk, но не оба"
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr "файлы Ñдра/ramdisk удалены"
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
#, fuzzy
msgid "Destroying VM"
msgstr "Выполнение перезагрузки xvp"
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr "ВМ не предоÑтавлена, пропуÑк Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð»Ð¸ÐºÐ²Ð¸Ð´Ð°Ñ†Ð¸Ð¸..."
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð² ÑоÑтоÑнии режима воÑÑтановлениÑ: %s"
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "ВМ не предоÑтавлена, пропуÑк Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð»Ð¸ÐºÐ²Ð¸Ð´Ð°Ñ†Ð¸Ð¸..."
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
#, fuzzy
msgid "Automatically hard rebooting"
msgstr "ÐвтоматичеÑÐºÐ°Ñ Ð±ÐµÐ·Ð¾Ñ‚ÐºÐ°Ð·Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° %d"
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "уÑтановка Ñетевого узла"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
#, fuzzy
msgid "Creating vifs"
msgstr "Создание изображениÑ"
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "Создание VIF Ð´Ð»Ñ Ð’Ðœ %(vm_ref)s, Ñеть %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "Создание VIF Ð´Ð»Ñ Ð’Ðœ %(vm_ref)s, Ñеть %(network_ref)s."
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
#, fuzzy
msgid "No suitable network for migrate"
msgstr "ÐедопуÑтимый Ñетевой формат"
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
#, fuzzy
msgid "Migrate Send failed"
msgstr "Ошибка ÑозданиÑ"
@@ -11277,7 +11607,7 @@ msgstr "Подключить том %(volume_id)s Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ %(instance_i
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "ÐšÐ¾Ð¿Ð¸Ñ %(instance_id)s не найдена."
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11285,7 +11615,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -11340,49 +11670,8 @@ msgstr "Образ должен быть доÑтупен"
msgid "status must be 'available'"
msgstr "Образ должен быть доÑтупен"
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
-#~ msgstr "Изменение размера VDI %(cow_uuid)s Ñ %(old_gb)dГБ до %(new_gb)dГБ"
-
diff --git a/nova/locale/ru_RU/LC_MESSAGES/nova.po b/nova/locale/ru_RU/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..a0a868446
--- /dev/null
+++ b/nova/locale/ru_RU/LC_MESSAGES/nova.po
@@ -0,0 +1,11300 @@
+# Russian (Russia) translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Russian (Russia) "
+"(http://www.transifex.com/projects/p/openstack/language/ru_RU/)\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/sw_KE/LC_MESSAGES/nova.po b/nova/locale/sw_KE/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..2efdbc73a
--- /dev/null
+++ b/nova/locale/sw_KE/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Swahili (Kenya) translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Swahili (Kenya) "
+"(http://www.transifex.com/projects/p/openstack/language/sw_KE/)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/tl/LC_MESSAGES/nova.po b/nova/locale/tl/LC_MESSAGES/nova.po
index 810a2bd55..53e2053f7 100644
--- a/nova/locale/tl/LC_MESSAGES/nova.po
+++ b/nova/locale/tl/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-08-23 11:21+0000\n"
"Last-Translator: Thierry Carrez <thierry.carrez+lp@gmail.com>\n"
"Language-Team: Tagalog <tl@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,211 +156,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -368,85 +378,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -454,1037 +464,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "walang paraan para sa mensahe: %s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "walang paraan para sa mensahe: %s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1494,17 +1491,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1707,7 +1704,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,6 +1726,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1803,169 +1801,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2014,37 +2012,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2069,6 +2107,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2118,21 +2157,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2143,6 +2186,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2162,12 +2206,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2212,7 +2256,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2227,20 +2271,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2312,10 +2359,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2342,217 +2391,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2723,28 +2845,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2836,14 +2963,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2891,7 +3018,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3019,11 +3146,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3134,16 +3256,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3153,7 +3275,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3170,16 +3292,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3191,11 +3313,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3244,16 +3366,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3263,124 +3414,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "walang paraan para sa mensahe: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "walang paraan para sa mensahe: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3766,238 +3949,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4100,650 +4299,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4857,18 +5051,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4946,54 +5140,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5010,56 +5220,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5095,32 +5309,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5139,15 +5358,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5297,67 +5520,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5518,79 +5741,78 @@ msgstr "natanggap %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5600,65 +5822,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5670,6 +5897,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5705,17 +5951,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "natanggap %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5812,21 +6058,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6000,18 +6302,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6040,44 +6347,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6338,38 +6645,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6441,10 +6748,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6452,6 +6766,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6487,14 +6806,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6564,46 +6883,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6642,12 +6961,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6692,43 +7011,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6741,17 +7023,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6760,7 +7045,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6777,25 +7062,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6805,22 +7097,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6882,30 +7174,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7058,22 +7388,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7093,7 +7423,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7103,28 +7433,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7699,7 +8029,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7871,50 +8201,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8051,12 +8381,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8214,7 +8544,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8248,235 +8578,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8484,73 +8814,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8558,50 +8888,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8611,67 +8941,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8704,11 +9034,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8869,7 +9199,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8877,17 +9207,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8975,52 +9305,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9030,20 +9360,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9067,60 +9397,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9166,7 +9496,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9317,27 +9647,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9403,18 +9733,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9747,54 +10077,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9915,107 +10245,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10031,24 +10365,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10185,374 +10519,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "walang paraan para sa mensahe: %s"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10560,62 +10887,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10625,206 +10952,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10904,7 +11231,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10912,7 +11239,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10965,67 +11292,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/tr/LC_MESSAGES/nova.po b/nova/locale/tr/LC_MESSAGES/nova.po
index c43a826d0..9178842e9 100644
--- a/nova/locale/tr/LC_MESSAGES/nova.po
+++ b/nova/locale/tr/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-12-14 18:10+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Turkish <tr@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,211 +156,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -368,85 +378,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -454,1037 +464,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1494,17 +1491,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1707,7 +1704,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1729,6 +1726,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1803,169 +1801,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2014,37 +2012,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2069,6 +2107,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2118,21 +2157,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2143,6 +2186,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2162,12 +2206,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2212,7 +2256,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2227,20 +2271,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2312,10 +2359,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2342,217 +2391,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2723,28 +2845,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2836,14 +2963,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2891,7 +3018,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3019,11 +3146,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3134,16 +3256,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3153,7 +3275,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3170,16 +3292,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3191,11 +3313,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3244,16 +3366,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3263,124 +3414,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3765,238 +3948,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4099,650 +4298,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4856,18 +5050,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4945,54 +5139,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5009,56 +5219,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5094,32 +5308,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5138,15 +5357,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5296,67 +5519,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5517,79 +5740,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5599,65 +5821,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5669,6 +5896,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5704,17 +5950,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5811,21 +6057,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -5999,18 +6301,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6039,44 +6346,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6337,38 +6644,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6440,10 +6747,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6451,6 +6765,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6486,14 +6805,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6563,46 +6882,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6641,12 +6960,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6691,43 +7010,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6740,17 +7022,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6759,7 +7044,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6776,25 +7061,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6804,22 +7096,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6881,30 +7173,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7057,22 +7387,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7092,7 +7422,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7102,28 +7432,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7698,7 +8028,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7870,50 +8200,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8050,12 +8380,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8213,7 +8543,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8247,235 +8577,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8483,73 +8813,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8557,50 +8887,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8610,67 +8940,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8703,11 +9033,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8868,7 +9198,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8876,17 +9206,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8974,52 +9304,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9029,20 +9359,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9066,60 +9396,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9165,7 +9495,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9316,27 +9646,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9402,18 +9732,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9746,54 +10076,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9914,107 +10244,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10030,24 +10364,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10184,374 +10518,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10559,62 +10886,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10624,206 +10951,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10903,7 +11230,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10911,7 +11238,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10964,67 +11291,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/tr_TR/LC_MESSAGES/nova.po b/nova/locale/tr_TR/LC_MESSAGES/nova.po
index b8ca62046..930e2b3a9 100644
--- a/nova/locale/tr_TR/LC_MESSAGES/nova.po
+++ b/nova/locale/tr_TR/LC_MESSAGES/nova.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nova\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2013-02-02 18:03+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: en_US <LL@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -158,73 +158,83 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "%(volume_id)s bölümü hiçbir şeyle ilişkilendirilmedi"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "Anahtar çifti verisi geçersiz"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "İstek geçersiz"
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "Geçersiz giriş yapıldı"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "Geçersiz bölüm"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr "Geçersiz metadata"
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "Geçersiz port aralığı %(from_port)s:%(to_port)s. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "Geçersiz IP %(protocol)s."
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "Geçersiz içerik türü %(content_type)s."
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "Geçersiz CIDR %(cidr)s."
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "Hatalar: %(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
@@ -233,16 +243,16 @@ msgstr ""
"%(aggregate_id)s üzerinde '%(action)s' eylemi gerçekleştirilemiyor. "
"Nedeni: %(reason)s."
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
@@ -251,116 +261,116 @@ msgstr ""
"%(attr)s %(state)s 'deki %(instance_uuid)s örneği. Örnek bu durumda iken "
"%(method)s yapılamaz."
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "%(instance_id)s örneği çalışmıyor."
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr "%(instance_id)s örneği kurtarma modunda değil"
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "%(instance_id)s örneği kurtarma modunda değil"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "Örnek kapatmada hata oluştu."
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "Örnek kapatmada hata oluştu."
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "Örnek kapatmada hata oluştu."
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "Şu anda servis kullanılamıyor."
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "Hesaplama servisi şu anda kullanılamıyor."
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr "Mevcut (%(host)s) sunucusundan (%(instance_id)s) örneği geçirilemez."
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr "Desteklenen hypervisor türü geçersiz."
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr "Örnek şu ankinden daha yeni hypervisor versiyonu gerektirir."
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr "Desteklenen disk yolu (%(path)s) halen var,fakat var olmaması gerekir."
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr "Desteklenen cihaz yolu (%(path)s) geçersiz."
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "Kabul edilemeyen CPU bilgisi"
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s geçerli bir IP v4/6 adresi değildir."
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
@@ -369,7 +379,7 @@ msgstr ""
"VLAN etiketi %(bridge)s port grubu için uygun değil. Beklenen VLAN "
"etiketi %(tag)s'dir, fakat tek iliÅŸkili port grubu %(pgroup)s'dir."
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -380,85 +390,85 @@ msgstr ""
"iliÅŸkilendirilmemiÅŸtir. Beklenen vSwitch %(expected)s'dir, fakat "
"iliÅŸkilendirilen ise %(actual)s'dir."
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "%(disk_format)s disk formatı kabul edilemez."
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr "%(image_id)s imajı kabul edilemez: %(reason)s"
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr "%(instance_id)s örneği kabul edilemez: %(reason)s"
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr "%(ec2_id)s Ec2 id'si kabul edilemez."
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "Geçersiz CIDR %(cidr)s."
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr "Kaynak bulunamadı."
-#: nova/exception.py:447
+#: nova/exception.py:458
#, fuzzy, python-format
msgid "No agent-build associated with id %(id)s."
msgstr "%(id)s ile iliÅŸkilendirilmiÅŸ bir dinamik IP yok."
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr "%(volume_id)s bölümü bulunamadı."
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr "%(snapshot_id)s sistem anlık görüntüsü bulunamadı."
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr "%(volume_id)s bölümü için hedef id bulunamadı."
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr "%(location)s'da disk yok."
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr "%(driver_type)s bölümü için bir işleyici bulunamadı."
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr "Geçersiz %(image_href)s imaj kaynak dosyası."
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr "%(image_id)s imaj kaynak dosyası bulunamadı."
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -466,65 +476,65 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "%(project_id)s projesi bulunamadı."
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr "VDI'ya okuma/yazma yapılırken SR(Saklama deposu) bulunamadı."
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "%(network_id)s ağı bulunamadı."
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr "AÄŸ oluÅŸturulurken %(req)s gereklidir."
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "%(network_id)s ağı bulunamadı."
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "%(snapshot_id)s sistem anlık görüntüsü bulunamadı."
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr " %(bridge)s köprüsü için ağ bulunamadı."
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr "%(uuid)s UUID'si için bir ağ bulunamadı"
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr "%(cidr)s CIDR ile bir ağ bulunamadı."
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "Tanımlı bir ağ yok."
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
@@ -533,239 +543,239 @@ msgstr ""
"%(network_uuid)s aÄŸ UUID verilmedi veya %(project_id)s projesi ile "
"iliÅŸkilendirilmedi."
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr "VM'nin kullandığı veri deposu referansı(ları) bulunamadı."
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/exception.py:551
+#: nova/exception.py:562
#, fuzzy, python-format
msgid "No free port available for instance %(instance)s."
msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr "%(id)s ile iliÅŸkilendirilmiÅŸ bir dinamik IP yok."
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr "%(address)s adresi için bir dinamik IP bulunamadı."
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
"%(network_id)s ağında %(host)s ağ sunucusunun hiç dinamik IP'si yok.\n"
" "
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr "(%(network_uuid)s) ağında bir (%(address)s) dinamik IP adresi yok."
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr "%(address)s dinamik IP adresi geçersiz."
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr "Kullanılabilir hiç dinamik IP yok."
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr "Hiç dinamik IP bulunamadı."
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr "%(id)s ID'si için değişken IP bulunamadı."
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr "%(domain)s alanında %(name)s DNS girdisi halen var."
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr "%(address)s adresi için bir değişken IP bulunamadı."
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr " %(host)s sunucusu için bir değişken IP bulunamadı."
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr "Hiç mevcut değişken IP yok."
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr "%(address)s deÄŸiÅŸken IP adresi iliÅŸkilendirildi."
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr "%(address)s deÄŸiÅŸken IP adresi iliÅŸkilendirilemedi."
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr "Hiç değişken IP yok."
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr "%(interface)s arayüzü bulunamadı."
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr "%(user_id)s kullanıcısı için %(name)s anahtar çifti bulunamadı"
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr "%(certificate_id)s sertifikası bulunamadı"
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "%(service_id)s servisi bulunamadı."
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr "%(host)s sunucusu bulunamadı."
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr "%(host)s hesaplama sunucusu bulunamadı."
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr "%(host)s sunucusunda %(binary)s ikilisi bulunamadı."
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr "Kota bulunamadı."
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr "%(project_id)s projesi için bir kota bulunamadı."
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr "%(security_group_id)s güvenlik grubu bulunamadı."
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
"%(project_id)s projesi için %(security_group_id)s güvenlik grubu "
"bulunamadı."
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr "%(rule_id)s kurallı güvenlik grubu bulunamadı."
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
@@ -774,7 +784,7 @@ msgstr ""
"%(security_group_id)s güvenlik grubu zaten %(instance_id)s örneği ile "
"iliÅŸkilendirimiÅŸ."
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
@@ -783,37 +793,37 @@ msgstr ""
"%(security_group_id)s güvenlik grubu %(instance_id)s örneği ile "
"iliÅŸkilendirilmedi."
-#: nova/exception.py:746
+#: nova/exception.py:757
#, fuzzy, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr "%(rule_id)s kurallı güvenlik grubu bulunamadı."
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr "%(migration_id)s göçü bulunamadı."
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr "%(status)s durumuyla %(instance_id)s örneği için göç bulunamadı."
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr "%(pool_id)s konsol havuzu bulunamadı."
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
@@ -822,104 +832,104 @@ msgstr ""
"%(host)s roxy sunucusundaki %(compute_host)s hesaplama sunucusu için "
"%(console_type)s türünün konsol havuzu bulunamadı."
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr "%(console_id)s konsolu bulunamadı."
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "Geçersiz içerik türü %(content_type)s."
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr "%(instance_type_id)s örnek türü bulunamadı"
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr "%(instance_type_name)s isimli örnek türü bulunamadı."
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr "%(flavor_id)s örnek türü bulunamadı."
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "%(name)s örneği zaten var."
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr "%(filter_name)s zamanlayıcı sunucu filtresi bulunamadı."
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
@@ -928,404 +938,452 @@ msgstr ""
"%(instance_type_id)s örnek türü %(extra_specs_key)s anahtarı ile ekstra "
"özelliklere sahip değil."
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr "%(file_path)s dosyası bulunamadı."
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr "Hiç dosya bulunamadı."
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
"%(adapter)s ağ bağdaştırıcısı ile ilişkilendirilen sanal anahtar "
"bulunamadı."
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr "%(adapter)s ağ bağdaştırıcısı bulunamadı."
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr "%(class_name)s sınıfı bulunamadı: %(exception)s"
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr "İşlem için izin verilmiyor."
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr "Önceki sistem geri görüntüsüne dönmek için izin verilmiyor."
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr "Yedek imajı geri dönüş parametresi gerekli"
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
msgstr "%(key_name)s anahtar çifti zaten var."
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr "%(name)s örneği zaten var."
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr "Geçiş hatası."
-#: nova/exception.py:931
+#: nova/exception.py:942
#, fuzzy
msgid "Migration pre-check error"
msgstr "Geçiş hatası."
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr "Hatalı biçimlendirilmiş mesaj gövdesi: %(reason)s"
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr "%(path)s'deki yapılandırma bulunamadı"
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr "İmaj dosyası verilen örneğin müsade ettiği türden daha büyük"
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr "Örnek türün belleği istenilen imaj dosyası için çok küçük."
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr "Örnek türünün diski istenilen imaj dosyası için çok küçük."
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr "%(uuid)s hesaplama düğümü başlatmada yetersiz boş hafıza."
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr "Bu sunucu için bant genişliği/cpu/disk ölçümleri alınamadı."
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr "Geçerli bir sunucu bulunamadı: %(reason)s"
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr "Kota aşıldı"
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr "Kişisel dosya limiti aşıldı"
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr "Kişisel dosya yolu çok uzun"
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr "Kişisel dosya içeriği çok uzun"
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr "%(aggregate_id)s kümesi bulunamadı."
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "%(aggregate_name)s kümesi zaten var."
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr "%(aggregate_id)s kümesi %(host)s sunucusuna sahip değil."
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
"%(aggregate_id)s kümesi %(metadata_key)s. anahtarı ile hiç metadata'sı "
"yok."
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr "%(aggregate_id)s kümesi zaten%(host)s sunucusuna sahip."
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr "Örnek tür oluşturulamıyor."
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "%(instance_id)s örneği bulunamadı."
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "%(instance_id)s örneği bulunamadı."
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "%(volume_id)s bölümü bulunamadı."
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "%(project_id)s projesi bulunamadı."
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "%(device)s'daki %(instance_id)s örneğine %(volume_id)s birimini bağla"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, fuzzy, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr "%(user_id)s kullanıcısı için %(name)s anahtar çifti bulunamadı"
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "%(instance_id)s örneği kurtarma modunda değil"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "%(instance_id)s örneği kurtarma modunda değil"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "%(name)s örneği zaten var."
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
+#: nova/exception.py:1225
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "Beklenen nesne türü: %s"
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1336,7 +1394,7 @@ msgstr ""
msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/manager.py:166
+#: nova/manager.py:172
msgid "Notifying Schedulers of capabilities ..."
msgstr "Yetenekler zamanlayıcısı bildiriliyor ..."
@@ -1357,166 +1415,105 @@ msgstr "JSON dosyası ilkeyi temsil eder"
msgid "Rule checked when requested rule is not found"
msgstr "İstekte bulunan kural bulunamadığında kural kontrol edildi."
-#: nova/quota.py:966
+#: nova/quota.py:972
#, python-format
msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/quota.py:994
#, python-format
msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:990
+#: nova/quota.py:996
#, python-format
msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:1010
+#: nova/quota.py:1016
#, python-format
msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:1012
+#: nova/quota.py:1018
#, python-format
msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
-msgstr ""
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr "%(flag)s : FLAG SET"
-
-#: nova/service.py:214 nova/service.py:312
-#, python-format
-msgid "Caught %s, exiting"
-msgstr ""
-
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
-msgstr ""
-
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
-msgstr ""
-
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
-
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
-msgstr ""
-
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
-msgstr ""
-
-#: nova/service.py:348
-#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
-msgstr ""
-
-#: nova/service.py:351
-#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
-msgstr ""
-
-#: nova/service.py:354
-#, python-format
-msgid "pid %d not in child list"
-msgstr ""
-
-#: nova/service.py:374
-#, python-format
-msgid "Caught %s, stopping children"
-msgstr ""
-
-#: nova/service.py:385
-#, python-format
-msgid "Waiting on %d children to exit"
-msgstr ""
-
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr "%s servisi için tüketici bağlantısı oluşturuluyor."
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "Servis, hiç veritabanı girdisi olmayanı sonlandırdı."
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "Yerel adres bağlantısı bulunamadı.:%s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "Couldn't get Link Local IP of %(interface)s :%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "Geçersiz backend: %s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "Bilinmeyen temel dosya: %s"
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr "Beklenen nesne türü: %s"
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr "Geçersiz server_string: %s"
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "Zaman Fonksiyonu: %(name)s %(total_time).2f saniye sürdü"
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1526,17 +1523,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "%s güvenlik grubu string veya unicode değil"
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1742,7 +1739,7 @@ msgstr "Ortam: %s"
msgid "An unknown error has occurred. Please try your request again."
msgstr "Bilinmeyen bir hata oluştu. Lütfen tekrar deneyin."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr "Desteklenmeyen API isteği: kontrolcü = %(controller)s, işlem = %(action)s"
@@ -1764,6 +1761,7 @@ msgstr "%s anahtar çiftini oluştur"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1838,169 +1836,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "Özellik desteklenmiyor: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr "birim = %s\n"
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "Adres tahsisi"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "%s adresini serbest bırak"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "%(instance_id)s örneğine %(public_ip)s adresini ilişkilendir"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "Adresi kes %s"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr "İmaj müsait olmak zorunda"
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "Örnekleri sonlandırma işlemi başlatılıyor"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "%r örneğini tekrar yükle"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr "Örnekler durdurulacak"
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr "Örnekler başlatılacak"
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "%s imaj kaydı siliniyor"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "%(image_id)s id ile %(image_location)s imajı kaydedildi"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "Kullanıcı veya grup belirlenmedi"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "Sadece \"all\" grubu destekleniyor"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "İşlem türü eklenmek veya kaldırılmak zorunda"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "%s imaj tanıtımı güncelleniyor"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "%d saniye içinde örnek durdurulamadı"
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2050,26 +2048,26 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "IP için metadata alma hata ile sonuçlandı: %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "Yakalama hatası: %s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr "%(url)s HTTP %(status)d ile geri döndü"
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr "UzantıYöneticisi sınıfı belirlenmek zorunda"
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr "GeniÅŸletilmiÅŸ kaynak: %s"
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
@@ -2078,11 +2076,51 @@ msgstr ""
"%(ext_name)s uzantısı: %(collection)s kaynağı genişletilemiyor: Böyle bir"
" kaynak yok"
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr "%(ext_name)s uzantısı kaynağı genişletiyor: %(collection)s"
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, fuzzy, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr "Genişletme fabrikası çağırılıyor %s"
+
+#: nova/api/openstack/__init__.py:287
+#, fuzzy, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr "Genişletme yükleniyor: %s"
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "Genişletme yükleniyor: %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2107,6 +2145,7 @@ msgid "offset param must be positive"
msgstr "Göreli konum parametresi pozitif olmak zorunda"
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr " [%s] göstergesi bulunamadı"
@@ -2156,21 +2195,25 @@ msgid "Loaded extension: %s"
msgstr "Yüklenen bölüm: %s"
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr "Ext adı: %s"
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr "Ext takma adı: %s"
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr "Ext açıklaması: %s"
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr "Ext isim uzayı: %s"
@@ -2181,6 +2224,7 @@ msgid "Ext updated: %s"
msgstr "Ext güncellendi: %s"
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr "İstisna yükleme uzantısı: %s"
@@ -2200,12 +2244,12 @@ msgstr "Genişletme fabrikası çağırılıyor %s"
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "%(ext_factory)s uzantısı yüklemede hata: %(exc)s"
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr "%(classpath)s uzantısı yüklemede hata: %(exc)s"
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, fuzzy, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr "%(ext_name)s uzantısı yüklemede hata: %(exc)s"
@@ -2250,7 +2294,7 @@ msgstr "İstekteki sağlayıcı gövdesi boş"
msgid "There is no such action: %s"
msgstr "Böyle bir işlem yok: %s"
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2265,20 +2309,23 @@ msgstr "Kusurlu istek gövdesi"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "Desteklenmeyen içerik türü"
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
-msgstr "Hatalı istek bağlantısı"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2352,10 +2399,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr "Örnek mevcut değil"
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr "Örnek belirlenmiş ağın bir üyesi değil"
@@ -2382,224 +2431,299 @@ msgid "Metadata item was not found"
msgstr "İçerik özelliği bilgisi bulunamadı"
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr "Geçersiz değişiklik-oluşturma değeri"
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "%(flavor_id)s örnek türü bulunamadı."
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr "Örnek bulunamadı."
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr "Yanlış kişisel biçim: %s bulunamadı"
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr "Yanlış kişisel biçim"
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr "%s için kişisel içerik çözümlenemedi"
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr "Yanlış ağ biçimi: ağ UUID'si uygun formatta değil(%s)"
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "Geçersiz değişken IP adresi (%s)"
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "Tekrarlanan aÄŸlara (%s) izin verilmiyor"
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr "Yanlış ağ biçimi: %s bulunamadı"
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr "Hatalı ağ biçimi"
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr "Kullanıcı verisi içeriği çözülemez"
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr "IPv4 adresi uygun IPv4 formatında değil"
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr "Sunucu adı tanımlanmadı"
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr "Geçersiz örnek türü sağlayıcısı"
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr "İstenilen imaj dosyası bulunamadı"
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr "Geçersiz anahtar adı verildi."
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "%s için kişisel içerik çözümlenemedi"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr "Örnek tekrar boyutlandırılacak şekilde ayarlanmadı."
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "%(instance_id)s örneği bulunamadı."
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr "Önyükleme için argüman türü HARD veya SOFT değil"
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr "Önyükleme için tür argümanı eksik"
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr "İstenilen örnek türü konumlandırılamıyor."
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "%(instance_id)s örneği bulunamadı."
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "%s geçerli bir örnek ismidir"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr "İmaj referans özelliği eksik"
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr "Geçersiz imaj referansı verildi."
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr "Örnek türü referans özelliği eksik"
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr "Belirlenmiş bir yönetici parolası yok"
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr "Geçersiz yönetici parolası"
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "Örnek kapatmada hata oluştu."
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr "Çözümlenemeyen metadata anahtar/değer çifti."
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
"Yeniden boyutlandırma isteği geçersiz örnek türü referansı özelliğine "
"sahip."
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
"Yeniden boyutlandırma isteği geçersiz örnek türü referansı özelliği "
"gerektirir."
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr "Geçersiz istek gövdesi"
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr "İstekte bulunulan imaj referansı çözümlenemedi."
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr "Yeniden kurulum için imaj dosyası bulunamadı."
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr "createImage varlığının isim özelliğine ihtiyacı var"
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, fuzzy, python-format
msgid "Removing options '%s' from query"
msgstr "Sorgudan '%(unk_opt_str)s' seçenekleri kaldırılıyor"
@@ -2774,29 +2898,34 @@ msgstr "%s VLAN arayüzü başlatılıyor "
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "Kural (%s) bulunamadı"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
#, fuzzy
msgid "Cell name cannot be empty"
msgstr "Güvenlik grup adı boş bırakılamaz"
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2894,14 +3023,14 @@ msgstr "Sunucu ve blok_göçü tanımlanmak zorunda."
msgid "Error in evacuate, %s"
msgstr "Göçte hata %s"
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "Kural (%s) bulunamadı"
@@ -2950,7 +3079,7 @@ msgstr "%(address)s deÄŸiÅŸken IP adresi iliÅŸkilendirildi."
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr "Parametre dizini eksik"
@@ -3080,11 +3209,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr "'%s' anahtar çifti zaten var."
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr "addFixedlp için 'networkld' argümanı bulunamadı"
@@ -3198,16 +3322,16 @@ msgstr ""
msgid "Create networks failed"
msgstr "Tanımlı bir ağ yok."
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, fuzzy, python-format
msgid "Quota for %s should be integer."
msgstr "Sürüm tam sayı olmak zorunda"
@@ -3217,7 +3341,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr "Bozuk scheduler_hints özelliği"
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "Geçerli bir kuralı oluşturmak için yeterli parametre yok."
@@ -3236,16 +3360,16 @@ msgstr "%s id'li ağ gösteriliyor"
msgid "security group default rule not found"
msgstr "%(rule_id)s kurallı güvenlik grubu bulunamadı."
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, fuzzy, python-format
msgid "Bad prefix for network in cidr %s"
msgstr "Global ipv6 için yanlış sonek: %s"
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr "Güvenlik grubu belirlenmedi"
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr "Güvenlik grup adı boş bırakılamaz"
@@ -3257,12 +3381,12 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "Tanınmayan zincir: %r"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
#, fuzzy
msgid "Unknown service"
msgstr "Kimlik doğrulama hatası"
@@ -3312,16 +3436,45 @@ msgstr "%s biriminden sistem görüntüsü oluşturuluyor"
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "Yüklenen bölüm: %s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, fuzzy, python-format
+msgid "Ext version: %i"
+msgstr "Ext açıklaması: %s"
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "%s adresini serbest bırak"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "%s adresini serbest bırak"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, fuzzy, python-format
+msgid "Running _create_extension_point for %s"
+msgstr "Genişletme fabrikası çağırılıyor %s"
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3331,124 +3484,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, fuzzy, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr "%(ext_factory)s uzantısı yüklemede hata: %(exc)s"
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "%(status)s durumuyla %(instance_id)s örneği için göç bulunamadı."
+msgid "Got update for instance: %(instance)s"
+msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3844,115 +4030,125 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "Örnekleri sonlandırma işlemi başlatılıyor"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "%(instance_type_id)s örnek türü bulunamadı"
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "Örnekleri sonlandırma işlemi başlatılıyor"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
@@ -3961,125 +4157,131 @@ msgstr ""
"Eski örnek türü %(current_instance_type_name)s, yeni örnek türü "
"%(new_instance_type_name)s"
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr "Anahtar çifti adı 1-255 karakter arası uzunluğunda olmak zorunda"
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr "%s güvenlik grubu string veya unicode değil"
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr "%s güvenlik grubu boş bırakılamaz."
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr "%s güvenlik grubu 255 karakterden fazla olmamalıdır."
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "%s güvenlik grubunu oluşturunuz"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr "%s güvenlik grubu zaten var"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "Geçersiz güncelleme ayarı: '%s'"
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "%s güvenlik grubunu siliniz"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr "Kural (%s) bulunamadı"
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "Yetkilendirilmiş %s güvenlik grubu girişi"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "%s güvenlik grubu girişini iptal et"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr "Güvenlik grup id'si integer olmak zorunda"
@@ -4182,578 +4384,569 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr "Mevcut (%(host)s) sunucusundan (%(instance_id)s) örneği geçirilemez."
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr "Mevcut durum %(drv_state)s, veritabanındaki durum %(db_state)s."
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "Örnek kapatmada hata oluştu."
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "Misafir sistem sürücüsü güvenlik duvarı kurallarını desteklemiyor"
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "BeklenmeyenHata: %s"
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "Durum kontrol ediliyor"
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr "%s blok aygıt haritalandırması ayarlanıyor"
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "Örnek oluşturmada hata"
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "Veritabanı hatası: %s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-"İmaj id=%(image_id)s, İmaj boyutu=%(size_bytes)d, İzin verilen "
-"boyut=%(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-"İmaj '%(image_id)s' boyut%(size_bytes)d izin verilen örnek "
-"%(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "Örnek başlatılıyor.."
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr "Ağ kurulumundaki örnek başarısız"
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "Örnek ağ_bilgisi: |%s|"
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "Örnek blok aygıtı kurulumu hatalı"
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "Örnek oluşturmada hata"
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "Örnek için ağ serbest bırakılıyor"
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s örneği"
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "Örnek için ağ serbest bırakılıyor"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr "%(action_str)s örneği"
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr "DiskBulunamadı yok sayılıyor: %s"
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "Blok cihazı haritalandırması kapatılıyor %s"
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Birimi ayır %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "%(num_images)d tane imaj bulundu(dönüş: %(rotation)d)"
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr "İmaj siliniyor %s"
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr "Yönetici parolası oluşturmada hata. %s örneği çalışmıyor."
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "Örnek kapatmada hata oluştu."
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "Veritabanı hatası: %s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "Örneğin hiç bölümü yok."
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr "dedef kaynak ile aynı!"
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "Konsol ekleniyor"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr "%(mountpoint)s'de %(volume_id)s bölümü ön yükleniyor"
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr "%(mountpoint)s'e %(volume_id)s bölümü bağlanıyor"
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr "%(mp)s bağlama noktasındaki %(volume_id)s bölümü ayrılıyor"
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "%(mp)s bağlama noktasındaki %(volume_id)s bölümü ayrılıyor"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "%(volume_id)s bölümü hiçbir şeyle ilişkilendirilmedi"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "%(host)s sunucusu bulunamadı."
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr "Güncel göç işlemi %(dest)s'da bir hata ile karşılaştı"
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr "%(dest)s'a örnek göçü işlemi başarıyla tamamlandı."
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr "Bant genişliği kullanım önbelleği güncelleniyor"
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Bant genişliği kullanım önbelleği güncelleniyor"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr "Sunucu durumu güncelleniyor"
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
@@ -4762,84 +4955,84 @@ msgstr ""
"Veritabanında %(num_db_instances)s ve misafir sistemde "
"%(num_vm_instances)s bulundu"
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr "Silinen örnek kurtarılıyor"
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "İmaj siliniyor %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4954,18 +5147,18 @@ msgstr "%s örneği için sunucu bulma başarısız"
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -5044,56 +5237,72 @@ msgstr "Anahtar kontrol edliyor: %(token)s, %(token_valid)s)"
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr "Tanınmayan silinmiş okuma değeri '%s'"
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "%s geçerli bir örnek ismidir"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "%s geçerli bir örnek ismidir"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "%s geçerli bir örnek ismidir"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "%s geçerli bir örnek ismidir"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "%s geçerli bir örnek ismidir"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5110,56 +5319,61 @@ msgstr "Sürüm tam sayı olmak zorunda"
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+#, fuzzy
+msgid "Unsupported id columns type"
+msgstr "Desteklenmeyen içerik türü"
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5195,32 +5409,37 @@ msgstr "%(image_path)si için %(image_location)s indirme işlemi başarısız"
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr "%(image_path)s için %(image_location)s çözümü başarısız"
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr "%(image_path)s için %(image_location)s çıkarma işlemi başarısız"
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr "%(image_path)s için %(image_location)s yükleme işlemi başarısız"
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "Özel anahtar çözümü başarısız: %s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "Başlatma vektörü çözümü başarısız: %s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "%(image_file)s imaj dosyası çözümü başarısız: %(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr "İmajda güvenliksiz dosya isimleri var"
@@ -5239,16 +5458,20 @@ msgstr "Global ipv6 için yanlış sonek: %s"
msgid "Bad project_id for to_global_ipv6: %s"
msgstr "Global ipv6 için yanlış proje numarası: %s"
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "Tekrar yükleme örneğinde hata oluştu."
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5398,67 +5621,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "%d süreç numarası bozuldu, radvd tekrar başlatılıyor"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "%s VLAN arayüzü başlatılıyor "
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "%s köprüsü koruma altına alınıyor"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, fuzzy, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr "%(vlan)s vlan ve %(bridge)s köprüsü koruma altına alınıyor"
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5620,80 +5843,80 @@ msgstr "sil: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr "miras nw_info için v4 alt ağları gerekiyor"
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
-msgstr ""
+#: nova/network/quantumv2/__init__.py:67
+#, fuzzy
+msgid "quantum authentication failed"
+msgstr "Kimlik doğrulama hatası"
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "Öğe bulunamadı"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5703,70 +5926,75 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr "%s güvenlik grubunu siliniz"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "%s güvenlik grubunu siliniz"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "%s güvenlik grubunu siliniz"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "Yakalama hatası: %s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "%s güvenlik grubunu siliniz"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "Güvenlik grup id'si integer olmak zorunda"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "%s güvenlik grubunu siliniz"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "Yakalama hatası: %s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "%(rule_id)s kurallı güvenlik grubu bulunamadı."
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, fuzzy, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
"%(project_id)s projesi için %(security_group_id)s güvenlik grubu "
"bulunamadı."
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5780,6 +6008,26 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Bu kural zaten grupta var %s"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "XVP başlatılırken hata oluştu: %s"
+
+#: nova/objects/base.py:145
+#, fuzzy
+msgid "Invalid version string"
+msgstr "Geçersiz server_string: %s"
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5815,17 +6063,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "sil: %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr "syslog servisi bunlardan biri olmak zorundadır: %s"
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5922,21 +6170,77 @@ msgstr "SSH üzerinde ortam desteklenmemektedir."
msgid "process_input not supported over SSH"
msgstr "SSH üzerinde process_input desteklenmemektedir."
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr "Veritabanı istisnası yakalandı."
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6110,18 +6414,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, fuzzy, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr "%(base_file)s dosyasını kaldırma başarısız, %(error)s"
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6150,44 +6459,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr "AMQP kuyrukları tekrar kuruluyor"
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6449,38 +6758,38 @@ msgstr "%(num_instances)d örnek(leri) kurulmaya çalışılıyor."
msgid "Request Spec: %s"
msgstr "Geçersizİstek hatası: %s"
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "%(instance_id)s örneği için ağ bulunamadı."
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "%(hosts)s filtrelendi"
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, fuzzy, python-format
msgid "Weighed %(hosts)s"
msgstr "%(hosts)s filtrelendi"
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr "Mevcut (%(host)s) sunucusundan (%(instance_id)s) örneği geçirilemez."
@@ -6552,10 +6861,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6563,6 +6879,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6598,14 +6919,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6675,47 +6996,47 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "Kurtarılmış model sunucu bağlantısı!"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "Model sunucusu gitti."
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
#, fuzzy
msgid "memcached_servers not defined"
msgstr "Sunucu adı tanımlanmadı"
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6754,12 +7075,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6806,44 +7127,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr "Lütfen sahte libvirt modülü desteklenen bayraklar için genişletiniz"
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr " [%s] göstergesi bulunamadı"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr "Konuk aracı benzetmek için %s'de dosyalar oluşturuluyor"
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr "%s'deki benzetilmiş konuk aracı dosyaları kaldırılıyor"
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6856,17 +7139,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6875,7 +7161,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "Örnekler çalışıyor: %s"
@@ -6892,26 +7178,33 @@ msgstr "Örnekleri sonlandırmanın ardından: %s"
msgid "Internal error"
msgstr "İçsel hata"
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr "Zorla öldürülen örneklerin ardından: %s"
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
#, fuzzy
msgid "spawn error"
msgstr "Kimlik doğrulama hatası"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6921,22 +7214,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -7001,31 +7294,70 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr " [%s] göstergesi bulunamadı"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr "Lütfen sahte libvirt modülü desteklenen bayraklar için genişletiniz"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr "Konuk aracı benzetmek için %s'de dosyalar oluşturuluyor"
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr "%s'deki benzetilmiş konuk aracı dosyaları kaldırılıyor"
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
-#, fuzzy, python-format
+#: nova/virt/driver.py:980
+#, fuzzy
msgid "Unable to load the virtualization driver"
msgstr "Sanallaştırma sürücüsü yükleme başarısız: %s"
@@ -7181,22 +7513,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "|%s| örneği için değişken IP tahsisi"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7216,7 +7548,7 @@ msgstr "%s örneği için konsol çıktısını getir"
msgid "PXE deploy failed for instance %s"
msgstr "%s örneği için konsol çıktısını getir"
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7226,28 +7558,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "%s örneği için konsol çıktısını getir"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "%s örneği için konsol çıktısını getir"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "%s örneği için sunucu bulma başarısız"
@@ -7824,7 +8156,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7996,50 +8328,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, fuzzy, python-format
msgid "Cannot find boot VHD file: %s"
msgstr "Bilinmeyen temel dosya: %s"
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8178,12 +8510,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "|%s| örneği için değişken IP tahsisi"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8342,7 +8674,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8376,238 +8708,238 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "Örnekler durdurulacak"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "Tanımlı bir ağ yok."
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "Tanımlı bir ağ yok."
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8615,73 +8947,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8689,21 +9021,21 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
@@ -8712,29 +9044,29 @@ msgstr ""
"Diğer hesaplama düğümlerini haberdar etmek için %s geçici dosyası "
"oluşturuluyor. Düğümler aynı belleğe bağlanmalıdır."
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr "Blok göçü paylaşılan hafıza ile kullanılamaz."
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8749,7 +9081,7 @@ msgstr ""
" \n"
" Bkz: %(u)s"
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
@@ -8758,62 +9090,62 @@ msgstr ""
"Diğer hesaplama düğümlerini haberdar etmek için %s geçici dosyası "
"oluşturuluyor. Düğümler aynı belleğe bağlanmalıdır."
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, fuzzy, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
"plug_vifs() %(cnt)d kez başarısız oldu. %(hostname)s için %(max_retry)d "
"denemeye kadar tekrar deneniyor."
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr "Birim gibi göründüğünden beri %(path)s atlanıyor"
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8846,11 +9178,11 @@ msgstr "%(name)s için (%(instance_filter_name)s) ağ filtresi bulunamadı."
msgid "iptables firewall: Setup Basic Filtering"
msgstr "iptabloları güvenlik duvarı: Temel Filtreleme Kurulumu"
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -9013,7 +9345,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -9021,17 +9353,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9119,53 +9451,53 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "%s'de iSCSI cihazı bulunamadı"
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "%s'de iSCSI cihazı bulunamadı"
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9175,20 +9507,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9212,60 +9544,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9311,7 +9643,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9462,27 +9794,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr " [%s] göstergesi bulunamadı"
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9548,18 +9880,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9892,54 +10224,54 @@ msgstr "%s sistem görüntüsünden birim oluştur"
msgid "Renamed the VM from %s"
msgstr "%s sistem görüntüsünden birim oluştur"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -10062,107 +10394,111 @@ msgstr "Geçersiz bölüm"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10178,24 +10514,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10332,374 +10668,369 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+#: nova/virt/xenapi/vm_utils.py:1206
+#, fuzzy, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
+"İmaj '%(image_id)s' boyut%(size_bytes)d izin verilen örnek "
"%(allowed_size_bytes)d"
-msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10707,62 +11038,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10772,209 +11103,209 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "Örnek tür oluşturulamıyor."
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "XVP tekar başlatılıyor"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
#, fuzzy
msgid "No suitable network for migrate"
msgstr "Hatalı ağ biçimi"
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -11055,7 +11386,7 @@ msgstr "%(device)s'daki %(instance_id)s örneğine %(volume_id)s birimini bağla
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11063,7 +11394,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -11118,49 +11449,8 @@ msgstr "İmaj müsait olmak zorunda"
msgid "status must be 'available'"
msgstr "İmaj müsait olmak zorunda"
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr "EC2API hatası: %s"
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr "Göreli konum parametresi tam sayı olmak zorunda"
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/uk/LC_MESSAGES/nova.po b/nova/locale/uk/LC_MESSAGES/nova.po
index 050371fbe..2c6cd055c 100644
--- a/nova/locale/uk/LC_MESSAGES/nova.po
+++ b/nova/locale/uk/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2011-08-23 11:21+0000\n"
"Last-Translator: Thierry Carrez <thierry.carrez+lp@gmail.com>\n"
"Language-Team: Ukrainian <uk@li.org>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,211 +157,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -369,85 +379,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1037 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1495,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1709,7 +1706,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1731,6 +1728,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1806,169 +1804,169 @@ msgid "Detach Volume Failed."
msgstr "Від'єднати том %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "лише група \"вÑÑ–\" підтримуєтьÑÑ"
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2017,37 +2015,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2072,6 +2110,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2121,21 +2160,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2146,6 +2189,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2165,12 +2209,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2215,7 +2259,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2230,20 +2274,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð³Ð¸ %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2315,10 +2362,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2345,217 +2394,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2726,28 +2848,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2839,14 +2966,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2894,7 +3021,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3022,11 +3149,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3137,16 +3259,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3156,7 +3278,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3174,16 +3296,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3195,11 +3317,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3248,16 +3370,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3267,124 +3418,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3770,238 +3953,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "Вилучити групу безпеки %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4104,651 +4303,646 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "Від'єднати том %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "Від'єднати том %s"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "Від'єднати том %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4862,18 +5056,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4951,54 +5145,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5015,56 +5225,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5100,32 +5314,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5144,15 +5363,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5302,67 +5525,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5523,79 +5746,78 @@ msgstr "отримано %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5605,66 +5827,71 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr "Вилучити групу безпеки %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "Вилучити групу безпеки %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "Вилучити групу безпеки %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "Вилучити групу безпеки %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "Вилучити групу безпеки %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5676,6 +5903,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr "Це правило вже Ñ–Ñнує в групі %s"
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5711,17 +5957,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr "отримано %s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5818,21 +6064,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6006,18 +6308,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6046,44 +6353,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6344,38 +6651,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6447,10 +6754,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6458,6 +6772,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6493,14 +6812,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6570,46 +6889,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6648,12 +6967,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6698,43 +7017,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6747,17 +7029,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6766,7 +7051,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6783,25 +7068,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6811,22 +7103,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6888,30 +7180,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7064,22 +7394,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7099,7 +7429,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7109,28 +7439,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7705,7 +8035,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7877,50 +8207,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8057,12 +8387,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8220,7 +8550,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8254,235 +8584,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8490,73 +8820,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8564,50 +8894,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8617,67 +8947,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8710,11 +9040,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8875,7 +9205,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8883,17 +9213,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8981,52 +9311,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9036,20 +9366,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9073,60 +9403,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9172,7 +9502,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9323,27 +9653,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9409,18 +9739,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9753,54 +10083,54 @@ msgstr "Від'єднати том %s"
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9921,107 +10251,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10037,24 +10371,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10191,374 +10525,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "без порÑдку Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ: %s"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10566,62 +10893,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10631,206 +10958,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10911,7 +11238,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10919,7 +11246,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10972,67 +11299,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/vi_VN/LC_MESSAGES/nova.po b/nova/locale/vi_VN/LC_MESSAGES/nova.po
index 1b5c84040..24b91f7c6 100644
--- a/nova/locale/vi_VN/LC_MESSAGES/nova.po
+++ b/nova/locale/vi_VN/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Nova\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2013-05-13 19:22+0000\n"
"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
"Language-Team: Vietnamese (Viet Nam) "
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -157,211 +157,221 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr ""
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr ""
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
msgid "Failed to deploy instance"
msgstr ""
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -369,85 +379,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1037 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr ""
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr ""
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr ""
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr ""
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1495,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1708,7 +1705,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,6 +1727,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1804,169 +1802,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2015,37 +2013,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2070,6 +2108,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2119,21 +2158,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2144,6 +2187,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2163,12 +2207,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2213,7 +2257,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2228,20 +2272,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2313,10 +2360,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2343,217 +2392,290 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2724,28 +2846,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2837,14 +2964,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2892,7 +3019,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3020,11 +3147,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3135,16 +3257,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3154,7 +3276,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3171,16 +3293,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3192,11 +3314,11 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
msgid "Unknown action"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3245,16 +3367,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3264,124 +3415,156 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr ""
-#: nova/cells/messaging.py:854
-#, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
msgstr ""
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3766,238 +3949,254 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
msgid "Cannot attach one or more volumes to multiple instances"
msgstr ""
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
msgid "instance termination disabled"
msgstr ""
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
#, python-format
msgid "Unable to delete system group '%s'"
msgstr ""
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4100,650 +4299,645 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
msgid "Failed to resume instance"
msgstr ""
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, python-format
msgid "Detaching from volume api: %s"
msgstr ""
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr ""
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
msgid "Error trying to Rescue Instance"
msgstr ""
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
msgid "Detaching volume from unknown instance"
msgstr ""
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4857,18 +5051,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4946,54 +5140,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5010,56 +5220,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5095,32 +5309,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5139,15 +5358,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5297,67 +5520,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5518,79 +5741,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5600,65 +5822,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5670,6 +5897,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5705,17 +5951,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5812,21 +6058,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6000,18 +6302,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6040,44 +6347,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6338,38 +6645,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6441,10 +6748,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6452,6 +6766,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6487,14 +6806,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6564,46 +6883,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6642,12 +6961,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6692,43 +7011,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6741,17 +7023,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6760,7 +7045,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6777,25 +7062,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6805,22 +7097,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6882,30 +7174,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7058,22 +7388,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7093,7 +7423,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7103,28 +7433,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, python-format
msgid "Tilera deploy started for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, python-format
msgid "Tilera deploy completed for instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7699,7 +8029,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7871,50 +8201,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, python-format
msgid "Getting info for disk: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8051,12 +8381,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8214,7 +8544,7 @@ msgstr ""
msgid "Detaching physical disk from instance: %s"
msgstr ""
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8248,235 +8578,235 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, python-format
msgid "Connection to libvirt failed: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
msgid "Guest does not have a console available"
msgstr ""
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8484,73 +8814,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, python-format
msgid "Trying to get stats for the volume %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8558,50 +8888,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8611,67 +8941,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8704,11 +9034,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8869,7 +9199,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8877,17 +9207,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8975,52 +9305,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9030,20 +9360,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9067,60 +9397,60 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, python-format
msgid "Creating logical volume of size %s bytes"
msgstr ""
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
msgid "Unable to get checksum"
msgstr ""
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9166,7 +9496,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9317,27 +9647,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9403,18 +9733,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9747,54 +10077,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9915,107 +10245,111 @@ msgstr ""
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr ""
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10031,24 +10365,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10185,374 +10519,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10560,62 +10887,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10625,206 +10952,206 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
msgid "Unable to terminate instance."
msgstr ""
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10904,7 +11231,7 @@ msgstr ""
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10912,7 +11239,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10965,67 +11292,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/locale/zh_CN/LC_MESSAGES/nova.po b/nova/locale/zh_CN/LC_MESSAGES/nova.po
index 816f29d11..28cd96a01 100644
--- a/nova/locale/zh_CN/LC_MESSAGES/nova.po
+++ b/nova/locale/zh_CN/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-05-07 06:51+0000\n"
"Last-Translator: Edward <Unknown>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr "å—设备列表 block_device_list %s"
@@ -159,214 +159,224 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr "å· %(volume_id)s 没有附加任何东西"
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "å¯†é’¥å¯¹æ•°æ®æ— æ•ˆ"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr "请求无效。"
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr "收到无效的输入"
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr "无效的å·"
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr "无效的元数æ®"
-#: nova/exception.py:255
+#: nova/exception.py:266
#, fuzzy
msgid "Invalid metadata size"
msgstr "无效的元数æ®é”®"
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr "无效的端å£èŒƒå›´ %(from_port)s:%(to_port)s. %(msg)s"
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr "无效的IPåè®® %(protocol)s。"
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr "无效的内容类型 %(content_type)s。"
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr "无效的cidr %(cidr)s。"
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr "%(err)s"
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr "无法执行action '%(action)s' 于èšåˆ %(aggregate_id)s 上。原因: %(reason)s。"
-#: nova/exception.py:291
+#: nova/exception.py:302
#, fuzzy, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr "找ä¸åˆ°æœ‰æ•ˆä¸»æœºï¼ŒåŽŸå› æ˜¯ %(reason)s。"
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr "实例 %(instance_uuid)s 处于%(attr)s %(state)s 中。该实例在这ç§çжæ€ä¸‹ä¸èƒ½æ‰§è¡Œ %(method)s。"
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr "实例 %(instance_id)s 没有è¿è¡Œã€‚"
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr "实例 %(instance_id)s ä¸åœ¨æ•‘æ´æ¨¡å¼ã€‚"
-#: nova/exception.py:312
+#: nova/exception.py:323
#, fuzzy, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr "实例 %(instance_id)s ä¸åœ¨æ•‘æ´æ¨¡å¼ã€‚"
-#: nova/exception.py:316
+#: nova/exception.py:327
#, fuzzy, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr "实例 %(instance_id)s 没有挂起。"
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr "挂起实例失败"
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "注入文件失败:%(resp)r"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, fuzzy, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr "设置管ç†å‘˜å¯†ç å¤±è´¥ã€‚实例 %s 没有è¿è¡Œ"
-#: nova/exception.py:332
+#: nova/exception.py:343
#, fuzzy, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr "设置管ç†å‘˜å¯†ç å¤±è´¥ã€‚实例 %s 没有è¿è¡Œ"
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/exception.py:340
+#: nova/exception.py:351
#, fuzzy
msgid "Failed to terminate instance"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr "此时的付ä¸å¯ç”¨ã€‚"
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, fuzzy, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr "此时的计算æœåŠ¡ä¸å¯ç”¨ã€‚"
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr "无法把实例 (%(instance_id)s) è¿ç§»åˆ°å½“å‰ä¸»æœº (%(host)s)。"
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr "æä¾›çš„虚拟机管ç†ç¨‹åºç±»åž‹æ— æ•ˆã€‚"
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr "è¯¥å®žä¾‹éœ€è¦æ¯”当å‰ç‰ˆæœ¬æ›´æ–°çš„虚拟机管ç†ç¨‹åºã€‚"
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr "æä¾›çš„ç£ç›˜è·¯å¾„ (%(path)s) å·²ç»å­˜åœ¨ï¼Œé¢„计是ä¸å­˜åœ¨çš„。"
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr "æä¾›çš„设备路径 (%(path)s) 是无效的。"
-#: nova/exception.py:383
+#: nova/exception.py:394
#, fuzzy, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr "æä¾›çš„设备路径 (%(path)s) 是无效的。"
-#: nova/exception.py:388
+#: nova/exception.py:399
#, fuzzy, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr "æä¾›çš„设备路径 (%(path)s) 是无效的。"
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr "无法接å—çš„CPUä¿¡æ¯"
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr "%(address)s 䏿˜¯æœ‰æ•ˆçš„IP v4/6地å€ã€‚"
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr "VLAN标签对于端å£ç»„%(bridge)s 是ä¸é€‚åˆçš„。预计的VLAN标签是 %(tag)s,但与端å£ç»„å…³è”的是 %(pgroup)s。"
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -376,86 +386,86 @@ msgstr ""
"包å«ç«¯å£ç»„ %(bridge)s çš„vSwitch没有与预计的物ç†é€‚é…器关è”。预计的vSwitch是 %(expected)s,但关è”的是 "
"%(actual)s。"
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr "ç£ç›˜æ ¼å¼ %(disk_format)s ä¸èƒ½æŽ¥å—"
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr "é•œåƒ %(image_id)s 无法接å—,原因是: %(reason)s"
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr "实例 %(instance_id)s 无法接å—,原因是: %(reason)s"
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr "Ec2 id %(ec2_id)s 无法接å—。"
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, fuzzy, python-format
msgid "Invalid ID received %(id)s."
msgstr "无效的cidr %(cidr)s。"
-#: nova/exception.py:437
+#: nova/exception.py:448
#, fuzzy
msgid "Constraint not met."
msgstr "实例 - %s ä¸å­˜åœ¨"
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr "èµ„æºæ²¡æœ‰æ‰¾åˆ°ã€‚"
-#: nova/exception.py:447
+#: nova/exception.py:458
#, fuzzy, python-format
msgid "No agent-build associated with id %(id)s."
msgstr "没有固定IP与id %(id)s å…³è”。"
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr "å· %(volume_id)s 没有找到。"
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr "快照 %(snapshot_id)s 没有找到。"
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr "æ²¡æœ‰ä¸ºå· %(volume_id)s 找到目标id。"
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr "在 %(location)s 没有ç£ç›˜"
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr "无法为 %(driver_type)s å·æ‰¾åˆ°å¥æŸ„。"
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr "无效的镜åƒhref %(image_href)s。"
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr "é•œåƒ %(image_id)s 没有找到。"
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -463,856 +473,904 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr "项目 %(project_id)s 没有找到。"
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr "没有找到存储库æ¥è¯»å†™VDI。"
-#: nova/exception.py:494
+#: nova/exception.py:505
#, fuzzy, python-format
msgid "Network %(network_id)s is duplicated."
msgstr "网络 %(network_id)s 没有找到。"
-#: nova/exception.py:498
+#: nova/exception.py:509
#, fuzzy, python-format
msgid "Network %(network_id)s is still in use."
msgstr "网络 %(network_id)s 没有找到。"
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr "创建网络 %(req)s 是必è¦çš„。"
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr "网络 %(network_id)s 没有找到。"
-#: nova/exception.py:510
+#: nova/exception.py:521
#, fuzzy, python-format
msgid "Port id %(port_id)s could not be found."
msgstr "快照 %(snapshot_id)s 没有找到。"
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr "无法为桥 %(bridge)s 找到网络"
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr "无法为uuid %(uuid)s 找到网络"
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr "无法为cidr %(cidr)s 找到网络。"
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr "无法为实例 %(instance_id)s 找到网络。"
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr "没有网络定义。"
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr "或者网络uuid %(network_uuid)sä¸å­˜åœ¨ï¼Œæˆ–者它没有分é…给项目 %(project_id)s。"
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr "无法找到虚拟机使用的数æ®å­˜å‚¨å¼•用。"
-#: nova/exception.py:543
+#: nova/exception.py:554
#, fuzzy, python-format
msgid "Port %(port_id)s is still in use."
msgstr "网络 %(network_id)s 没有找到。"
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "无法为实例 %(instance_id)s 找到网络。"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, fuzzy, python-format
msgid "No free port available for instance %(instance)s."
msgstr "无法为实例 %(instance_id)s 找到网络。"
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr "没有固定IP与id %(id)s å…³è”。"
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr "æ²¡æœ‰ä¸ºåœ°å€ %(address)s 找到固定IP。"
-#: nova/exception.py:563
+#: nova/exception.py:574
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr "实例 %(instance_id)s 没有固定ip。"
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr "网络主机 %(host)s 在网络 %(network_id)s 中没有固定ip。"
-#: nova/exception.py:572
+#: nova/exception.py:583
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr "实例 %(instance_id)s 没有固定ip '%(ip)s'。"
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr "固定IPåœ°å€ (%(address)s) 在网络 (%(network_uuid)s) 中ä¸å­˜åœ¨ã€‚"
-#: nova/exception.py:581
+#: nova/exception.py:592
#, fuzzy, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr "固定IPåœ°å€ %(address)s 已在使用。"
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr "固定IPåœ°å€ %(address)s 无效。"
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr "没有固定ipå¯ç”¨ã€‚"
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr "找ä¸åˆ°å›ºå®šIP。"
-#: nova/exception.py:608
+#: nova/exception.py:619
#, fuzzy, python-format
msgid "Floating ip %(address)s already exists."
msgstr "浮动ip %(address)s 已被关è”。"
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr "找ä¸åˆ°é€‚åˆid %(id)s 的浮动IP。"
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr "DNS å…¥å£ %(name)s å·²ç»åœ¨åŸŸä¸­ %(domain)s 存在。"
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr "找ä¸åˆ°é€‚åˆåœ°å€ %(address)s 的浮动ip。"
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr "没有为主机 %(host)s 找到浮动IP。"
-#: nova/exception.py:628
+#: nova/exception.py:639
#, fuzzy, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr "找ä¸åˆ°é€‚åˆåœ°å€ %(address)s 的浮动ip。"
-#: nova/exception.py:632
+#: nova/exception.py:643
#, fuzzy
msgid "Floating ip pool not found."
msgstr "没有找到floating_ip"
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr "没有浮动IPå¯ç”¨ã€‚"
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr "浮动ip %(address)s 已被关è”。"
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr "浮动ip %(address)s 没有被关è”。"
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr "没有浮动ip存在。"
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr "æŽ¥å£ %(interface)s没有找到。"
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr "密钥对 %(name)s 没有为用户 %(user_id)s 找到。"
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr "è¯ä¹¦ %(certificate_id)s 没有找到。"
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr "æœåŠ¡ %(service_id)s 没有找到。"
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr "主机 %(host)s 没有找到。"
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr "计算主机 %(host)s 没有找到。"
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr "没有找到二进制 %(binary)s 在主机 %(host)s 上。"
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr "é…颿²¡æœ‰æ‰¾åˆ°ã€‚"
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr "没有为项目 %(project_id)s 找到é…é¢ã€‚"
-#: nova/exception.py:707
+#: nova/exception.py:718
#, fuzzy, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr "找ä¸åˆ°ç±» %(class_name)s :异常 %(exception)s"
-#: nova/exception.py:711
+#: nova/exception.py:722
#, fuzzy, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr "没有为项目 %(project_id)s 找到é…é¢ã€‚"
-#: nova/exception.py:715
+#: nova/exception.py:726
#, fuzzy, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr "用户 %(user_id)s 没有找到。"
-#: nova/exception.py:719
+#: nova/exception.py:730
#, fuzzy, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr "扩展资æºï¼š%s"
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr "安全组 %(security_group_id)s 没有找到。"
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr "没有找到安全组 %(security_group_id)s 针对项目 %(project_id)s 。"
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr "带有规则 %(rule_id)s 的安全组没有找到。"
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr "安全组 %(security_group_id)s å·²ç»ä¸Žå®žä¾‹ %(instance_id)s å…³è”。"
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr "安全组 %(security_group_id)s 没有与实例 %(instance_id)s å…³è”。"
-#: nova/exception.py:746
+#: nova/exception.py:757
#, fuzzy, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr "带有规则 %(rule_id)s 的安全组没有找到。"
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr "è¿ç§» %(migration_id)s 没有找到。"
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr "没有为实例 %(instance_id)s 找到è¿ç§»å…¶çжæ€ä¸º %(status)s 。"
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr "æŽ§åˆ¶å°æ±  %(pool_id)s 没有找到。"
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr "没有找到类型是 %(console_type)s çš„æŽ§åˆ¶å°æ± é’ˆå¯¹è®¡ç®—主机 %(compute_host)s 在代ç†ä¸»æœº %(host)s 上。"
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr "控制å°%(console_id)s 没有找到。"
-#: nova/exception.py:783
+#: nova/exception.py:794
#, fuzzy, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr "没有为实例 %(instance_id)s 找到控制å°ã€‚"
-#: nova/exception.py:787
+#: nova/exception.py:798
#, fuzzy, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr "没有为实例 %(instance_id)s 在池 %(pool_id)s 中找到控制å°ã€‚"
-#: nova/exception.py:792
+#: nova/exception.py:803
#, fuzzy, python-format
msgid "Invalid console type %(console_type)s"
msgstr "无效的控制å°ç±»åž‹ %(console_type)s "
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr "实例类型 %(instance_type_id)s 没有找到。"
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr "å为 %(instance_type_name)s 的实例类型没有找到。"
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr "类型 %(flavor_id)s 没有找到。"
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, fuzzy, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr "å·ç»„ %s ä¸å­˜åœ¨"
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
#, fuzzy
msgid "Timeout waiting for response from cell"
msgstr "等待RPCå“应超时:%s"
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, fuzzy, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr "没有为实例 %(instance_id)s 找到å·ã€‚"
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr "调度器主机过滤器 %(filter_name)s 没有找到。"
-#: nova/exception.py:850
+#: nova/exception.py:861
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr "实例 %(instance_id)s 没有键为 %(metadata_key)s 的元数æ®ã€‚"
-#: nova/exception.py:855
+#: nova/exception.py:866
#, fuzzy, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr "实例 %(instance_id)s 没有键为 %(metadata_key)s 的元数æ®ã€‚"
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr "实例类型 %(instance_type_id)s 没有é¢å¤–çš„ 键为%(extra_specs_key)s 的规格说明。"
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr "找ä¸åˆ°æ–‡ä»¶ %(file_path)s。"
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr "没找到文件"
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr "未找到与网络适é…器 %(adapter)s å…³è”çš„è™šæ‹Ÿäº¤æ¢æœºã€‚"
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr "未找到网络适é…器 %(adapter)s。"
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr "找ä¸åˆ°ç±» %(class_name)s :异常 %(exception)s"
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr "æ“作ä¸å…许。"
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr "å¿«ç…§ä¸å…许循环。"
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr "备份 image_type è¦æ±‚å¾ªçŽ¯å‚æ•°ã€‚"
-#: nova/exception.py:898
-#, python-format
-msgid "Key pair %(key_name)s already exists."
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, fuzzy, python-format
+msgid "Key pair '%(key_name)s' already exists."
msgstr "密钥对 %(key_name)s å·²ç»å­˜åœ¨ã€‚"
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr "实例 %(name)s å·²ç»å­˜åœ¨ã€‚"
-#: nova/exception.py:906
+#: nova/exception.py:917
#, fuzzy, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr "实例类型 %(name)s å·²ç»å­˜åœ¨ã€‚"
-#: nova/exception.py:910
+#: nova/exception.py:921
#, fuzzy, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr "实例类型 %(name)s å·²ç»å­˜åœ¨ã€‚"
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, fuzzy, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr "%(path)s 在共享存储上:%(reason)s"
-#: nova/exception.py:923
+#: nova/exception.py:934
#, fuzzy, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr "%(path)s 在共享存储上:%(reason)s"
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr "è¿ç§»é”™è¯¯"
-#: nova/exception.py:931
+#: nova/exception.py:942
#, fuzzy
msgid "Migration pre-check error"
msgstr "è¿ç§»é”™è¯¯"
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr "错误格å¼çš„æ¶ˆæ¯ä½“: %(reason)s"
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr "在 %(path)s 找ä¸åˆ°é…置文件。"
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr "无法从路径 %(path)s 中加载应用 '%(name)s'"
-#: nova/exception.py:949
+#: nova/exception.py:960
#, fuzzy
msgid "When resizing, instances must change flavor!"
msgstr "调整时实例的大å°å¿…é¡»è¦å‘生å˜åŒ–。"
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr "é•œåƒæ¯”实例类型所å…许的大。"
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr "实例类型的内存对于所请求的镜åƒå¤ªå°ã€‚"
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr "实例类型的ç£ç›˜å¯¹äºŽæ‰€è¯·æ±‚的镜åƒå¤ªå°ã€‚"
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr "没有足够的å¯ç”¨å†…å­˜æ¥å¯åŠ¨è®¡ç®—èŠ‚ç‚¹ %(uuid)s。"
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr "æ— æ³•èŽ·å–æ­¤ä¸»æœºçš„带宽ã€CPUå’Œç£ç›˜æŒ‡æ ‡ã€‚"
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr "找ä¸åˆ°æœ‰æ•ˆä¸»æœºï¼ŒåŽŸå› æ˜¯ %(reason)s。"
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr "超出é…é¢"
-#: nova/exception.py:988
+#: nova/exception.py:995
#, fuzzy, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr "%(pid)s å·²ç»è¶…过é…é¢ï¼Œè¯•图è¿è¡Œ %(min_count)s 个实例"
-#: nova/exception.py:993
+#: nova/exception.py:1000
#, fuzzy
msgid "Maximum number of floating ips exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:997
+#: nova/exception.py:1004
#, fuzzy
msgid "Maximum number of fixed ips exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, fuzzy, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr "超过个性化文件é™åˆ¶"
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr "个性化文件路径太长"
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr "个性化文件内容太长"
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
#, fuzzy
msgid "Maximum number of key pairs exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1021
+#: nova/exception.py:1028
#, fuzzy
msgid "Maximum number of security groups or rules exceeded"
msgstr "所选择主机的最大数目(%d)"
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, fuzzy, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr "èšåˆ %(aggregate_id)s没有主机 %(host)s。"
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr "找ä¸åˆ°èšåˆ %(aggregate_id)s。"
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr "èšåˆ %(aggregate_name)s å·²ç»å­˜åœ¨ã€‚"
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr "èšåˆ %(aggregate_id)s没有主机 %(host)s。"
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr "èšåˆ %(aggregate_id)s 没有键为 %(metadata_key)s 的元数æ®ã€‚"
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr "èšåˆ %(aggregate_id)så·²ç»æœ‰ä¸»æœº %(host)s。"
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr "无法创建实例类型。"
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, fuzzy, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr "设置管ç†å‘˜å¯†ç å¤±è´¥ã€‚实例 %s 没有è¿è¡Œ"
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, fuzzy, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr "检测到已存在的id为%(vlan) vlan"
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr "实例 %(instance_id)s 没有找到。"
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, fuzzy, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr "没有为实例 %(instance_id)s 找到控制å°ã€‚"
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, fuzzy, python-format
msgid "Node %(node_id)s could not be found."
msgstr "å· %(volume_id)s 没有找到。"
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, fuzzy, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr "快照 %(snapshot_id)s 没有找到。"
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, fuzzy, python-format
msgid "Marker %(marker)s could not be found."
msgstr "é•œåƒ %(image_id)s 没有找到。"
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, fuzzy, python-format
msgid "Could not fetch image %(image_id)s"
msgstr "获å–é•œåƒ %(image)s"
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, fuzzy, python-format
msgid "Could not upload image %(image_id)s"
msgstr "获å–é•œåƒ %(image)s"
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, fuzzy, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr "没有为主机 %(host)s 找到浮动IP。"
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr "没有找到实例 %(instance_id)s"
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "释放实例的网络"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, fuzzy, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr "释放实例的网络"
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, fuzzy, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr "æŠŠå· %(volume_id)s 附加到实例 %(instance_id)s 上ä½ç½®åœ¨ %(device)s"
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, fuzzy, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr "密钥对 %(name)s 没有为用户 %(user_id)s 找到。"
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, fuzzy, python-format
msgid "The CA file for %(project)s could not be found"
msgstr "没有为项目 %(project_id)s 找到é…é¢ã€‚"
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, fuzzy, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr "项目 %(project_id)s 没有找到。"
-#: nova/exception.py:1170
+#: nova/exception.py:1177
#, fuzzy
msgid "Instance recreate is not implemented by this virt driver."
msgstr "该驱动ä¸èƒ½æ‰§è¡Œset_admin_password。"
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "实例 %(instance_id)s ä¸åœ¨æ•‘æ´æ¨¡å¼ã€‚"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "实例 %(instance_id)s ä¸åœ¨æ•‘æ´æ¨¡å¼ã€‚"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
+#, fuzzy, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr "实例类型 %(name)s å·²ç»å­˜åœ¨ã€‚"
+
+#: nova/exception.py:1219
#, python-format
msgid "Instance rollback performed due to: %s"
msgstr ""
+#: nova/exception.py:1225
+#, fuzzy, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr "期望的对象类型:%s"
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
#: nova/hooks.py:62
#, python-format
msgid "Running %(name)s pre-hook: %(obj)s"
@@ -1323,7 +1381,7 @@ msgstr ""
msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/manager.py:166
+#: nova/manager.py:172
msgid "Notifying Schedulers of capabilities ..."
msgstr "å‘调度器通报能力。"
@@ -1344,167 +1402,105 @@ msgstr "JSON文件表示策略。"
msgid "Rule checked when requested rule is not found"
msgstr "请求的规则找ä¸åˆ°æ—¶çš„æ£€æŸ¥ç¼ºçœè§„则。"
-#: nova/quota.py:966
+#: nova/quota.py:972
#, python-format
msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/quota.py:994
#, python-format
msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:990
+#: nova/quota.py:996
#, python-format
msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:1010
+#: nova/quota.py:1016
#, python-format
msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/quota.py:1012
+#: nova/quota.py:1018
#, python-format
msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:197
-#, fuzzy
-msgid "Full set of CONF:"
-msgstr "标记全集:"
-
-#: nova/service.py:204
-#, python-format
-msgid "%(flag)s : FLAG SET "
-msgstr "%(flag)sï¼šæ ‡è®°é›†åˆ "
-
-#: nova/service.py:214 nova/service.py:312
-#, fuzzy, python-format
-msgid "Caught %s, exiting"
-msgstr "快照 %s:正在删除"
-
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
-msgstr ""
-
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
-msgstr ""
-
-#: nova/service.py:317
-msgid "Unhandled exception"
-msgstr ""
-
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
-msgstr ""
-
-#: nova/service.py:334
-#, fuzzy, python-format
-msgid "Starting %d workers"
-msgstr "起始地å€"
-
-#: nova/service.py:348
-#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
-msgstr ""
-
-#: nova/service.py:351
-#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
-msgstr ""
-
-#: nova/service.py:354
-#, python-format
-msgid "pid %d not in child list"
-msgstr ""
-
-#: nova/service.py:374
-#, python-format
-msgid "Caught %s, stopping children"
-msgstr ""
-
-#: nova/service.py:385
-#, python-format
-msgid "Waiting on %d children to exit"
-msgstr ""
-
-#: nova/service.py:427
+#: nova/service.py:152
#, fuzzy, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr "å¯åЍ %(topic)s 节点 (版本 %(vcs_string)s)"
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr "为æœåŠ¡ %s 创建消费者"
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr "å› æ— æ•°æ®åº“记录,æœåŠ¡å·²è¢«ä¸­æ­¢"
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr "回调中debug:%s"
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr "本地IPåœ°å€æ²¡æœ‰æ‰¾åˆ°ï¼š%s"
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr "无法连接到 %(interface)s 的本地IP:%(ex)s"
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr "无效的åŽå°ï¼š%s"
-#: nova/utils.py:438
+#: nova/utils.py:436
#, fuzzy, python-format
msgid "Unknown byte multiplier: %s"
msgstr "未知的基文件:%s"
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr "期望的对象类型:%s"
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr "䏿­£ç¡®çš„server_string:%s"
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr "timefunc:'%(name)s' 用了%(total_time).2f 秒"
-#: nova/utils.py:799
+#: nova/utils.py:797
#, fuzzy, python-format
msgid "Reloading cached file %s"
msgstr "正在删除基文件:%s"
@@ -1514,17 +1510,17 @@ msgstr "正在删除基文件:%s"
msgid "Could not remove tmpdir: %s"
msgstr "移除容器失败:%s"
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, fuzzy, python-format
msgid "%s is not a string or unicode"
msgstr "æœåС噍åç§°ä¸æ˜¯å­—符串或者unicode"
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, fuzzy, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr "密钥对å称长度必须在1到255个字符之间"
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1728,7 +1724,7 @@ msgstr "Environment: %s"
msgid "An unknown error has occurred. Please try your request again."
msgstr "å‘生了一个未知的错误. 请é‡è¯•你的请求."
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr "䏿”¯æŒçš„API请求:controller = %(controller)s,action = %(action)s"
@@ -1750,6 +1746,7 @@ msgstr "创建密钥对 %s"
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1827,179 +1824,179 @@ msgid "Detach Volume Failed."
msgstr "åˆ†ç¦»å· %s"
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr "å±žæ€§ä¸æ”¯æŒ: %s"
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr "vol = %s\n"
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr "分é…地å€"
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
#, fuzzy
msgid "No more floating IPs available"
msgstr "没有更多的浮动ip。"
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr "é‡Šæ”¾åœ°å€ %s"
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
#, fuzzy
msgid "Unable to release IP Address."
msgstr "æ— æ³•æ‰¾åˆ°åœ°å€ %r"
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr "æŠŠåœ°å€ %(public_ip)s å…³è”到实例 %(instance_id)s"
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
#, fuzzy
msgid "Unable to associate IP Address, no fixed_ips."
msgstr "æ— æ³•æ‰¾åˆ°åœ°å€ %r"
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, fuzzy, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr "存在多个固定IP,使用第一个:%s"
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
#, fuzzy
msgid "Floating ip is already associated."
msgstr "浮动ip %(address)s 已被关è”。"
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
#, fuzzy
msgid "l3driver call to add floating ip failed."
msgstr "没有浮动IPå¯ç”¨ã€‚"
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
#, fuzzy
msgid "Error, unable to associate floating ip."
msgstr "æ— æ³•æ‰¾åˆ°åœ°å€ %r"
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr "å–æ¶ˆåœ°å€ %s 的关è”"
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
#, fuzzy
msgid "Floating ip is not associated."
msgstr "浮动ip %(address)s 没有被关è”。"
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr "镜åƒå¿…é¡»å¯ç”¨ã€‚"
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr "准备开始终止实例"
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr "é‡å¯å®žä¾‹ %r"
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr "å‡†å¤‡åœæ­¢å®žä¾‹"
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr "准备å¯åŠ¨å®žä¾‹"
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr "è§£é™¤é•œåƒ %s 的注册"
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr "用id %(image_id)s æ³¨å†Œé•œåƒ %(image_location)s"
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr "用户或者组没有确定"
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr "仅仅支æŒç»„\"all\""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr "operation_type必须添加或者移除"
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr "æ­£åœ¨æ›´æ–°é•œåƒ %s çš„ publicity 属性"
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr "无法在 %d ç§’å†…åœæ­¢å®žä¾‹"
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
#, fuzzy
msgid "Expecting a list of resources"
msgstr "获å–实例列表"
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
#, fuzzy
msgid "Only instances implemented"
msgstr "实例 - %s ä¸å­˜åœ¨"
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
#, fuzzy
msgid "Expecting a list of tagSets"
msgstr "获å–实例列表"
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
#, fuzzy
msgid "Invalid CIDR"
msgstr "无效的"
@@ -2051,37 +2048,77 @@ msgstr "无效的请求:%s"
msgid "Failed to get metadata for instance id: %s"
msgstr "为ip: %s获å–元数æ®å¤±è´¥"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr "抓到错误:%s"
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr "%(url)s éšHTTP %(status)d返回"
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr "必须明确一个ExtensionManager类"
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr "扩展资æºï¼š%s"
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr "扩展%(ext_name)sï¼šæ— æ³•æ‰©å±•èµ„æº %(collection)s:没有那ç§èµ„æº"
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr "扩展资æºçš„æ‰©å±• %(ext_name)s:%(collection)s"
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, fuzzy, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr "调用扩展工厂 %s"
+
+#: nova/api/openstack/__init__.py:287
+#, fuzzy, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr "正在加载扩展 %s"
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, fuzzy, python-format
+msgid "Missing core API extensions: %s"
+msgstr "正在加载扩展 %s"
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2106,6 +2143,7 @@ msgid "offset param must be positive"
msgstr "offset 傿•°å¿…须是正数"
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr "没有找到标记 [%s]"
@@ -2156,21 +2194,25 @@ msgid "Loaded extension: %s"
msgstr "加载的扩展:%s"
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr "Ext name: %s"
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr "Ext alias: %s"
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr "Ext æè¿°: %s"
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr "Ext 命å空间: %s"
@@ -2181,6 +2223,7 @@ msgid "Ext updated: %s"
msgstr "Ext updated: %s"
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr "加载扩展å‘生异常:%s"
@@ -2200,12 +2243,12 @@ msgstr "调用扩展工厂 %s"
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr "加载扩展 %(ext_factory)s 失败:%(exc)s"
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr "加载扩展 %(classpath)s 失败:%(exc)s"
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, fuzzy, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr "加载扩展 %(ext_name)s 失败:%(exc)s"
@@ -2250,7 +2293,7 @@ msgstr "请求中没有æä¾›ä¸»ä½“"
msgid "There is no such action: %s"
msgstr "没有该动作:%s"
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2265,20 +2308,23 @@ msgstr "错误格å¼çš„请求主体"
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, fuzzy, python-format
msgid "Calling method %s"
msgstr "调用 getter %s"
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr "䏿”¯æŒçš„Content-Type"
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
-msgstr "错误格å¼çš„请求url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2350,10 +2396,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr "实例ä¸å­˜åœ¨"
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr "å®žä¾‹å¹¶ä¸æ˜¯æŒ‡å®šç½‘络的æˆå‘˜"
@@ -2380,227 +2428,302 @@ msgid "Metadata item was not found"
msgstr "元数æ®é¡¹ç›®æœªæ‰¾åˆ°"
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr "无效的changes-since值"
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
#, fuzzy
msgid "Only administrators may list deleted instances"
msgstr "准备å°è¯•软删除实例 %s"
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, fuzzy, python-format
msgid "Flavor '%s' could not be found "
msgstr "主机 %(host)s 没有找到。"
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr "无法找到实例"
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr "错误的个性化格å¼ï¼šä¸¢å¤± %s"
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr "æŸå的个性化格å¼"
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr "个性化 %s 的内容无法解ç "
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
#, fuzzy
msgid "Unknown argment : port"
msgstr "未知的guestmount错误"
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, fuzzy, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr "æŸå的网络格å¼ï¼šç½‘络 uuid æ ¼å¼ä¸æ­£ç¡® (%s)"
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr "æŸå的网络格å¼ï¼šç½‘络 uuid æ ¼å¼ä¸æ­£ç¡® (%s)"
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr "䏿­£ç¡®çš„固定 IP 地å€(%s)"
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr "ä¸å…许é‡å¤çš„网络(%s)"
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr "错误的网络格å¼ï¼šä¸¢å¤±%s"
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr "错误的网络格å¼"
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr "Userdata 内容无法解ç "
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr "accessIPv4 䏿˜¯æ­£ç¡®çš„IPv4æ ¼å¼"
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
#, fuzzy
msgid "accessIPv6 is not proper IPv6 format"
msgstr "accessIPv4 䏿˜¯æ­£ç¡®çš„IPv4æ ¼å¼"
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr "æœåС噍å称未定义"
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr "æä¾›äº†æ— æ•ˆçš„flavorRef。"
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
#, fuzzy
msgid "min_count must be an integer value"
msgstr "limit 傿•°å¿…须是整数"
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
#, fuzzy
msgid "max_count must be an integer value"
msgstr "limit 傿•°å¿…须是整数"
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr "无法找到请求的镜åƒ"
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr "æä¾›äº†æ— æ•ˆçš„key_name。"
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
#, fuzzy
msgid "HostId cannot be updated."
msgstr "idä¸èƒ½æ˜¯None"
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
#, fuzzy
msgid "Personality cannot be updated."
msgstr "idä¸èƒ½æ˜¯None"
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr "实例还没有调整大å°ã€‚"
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
#, fuzzy
msgid "Flavor used by the instance could not be found."
msgstr "实例 %(instance_id)s 没有找到。"
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr "é‡å¯çš„傿•°'type'æ—¢ä¸æ˜¯HARDä¹Ÿä¸æ˜¯SOFT"
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr "缺少é‡å¯çš„傿•°'type'"
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr "无法找到请求的类型。"
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
#, fuzzy
msgid "Resize requires a flavor change."
msgstr "调整大å°éœ€è¦å°ºå¯¸çš„æ”¹å˜ã€‚"
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+#, fuzzy
+msgid "Image that the instance was started with could not be found."
+msgstr "实例 %(instance_id)s 没有找到。"
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "%s 是一个正确的实例åç§°"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr "缺少属性imageRef"
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr "æä¾›äº†æ— æ•ˆçš„imageRef。"
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr "缺少属性flavorRef"
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr "没有确定adminPass"
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr "无效的adminPass"
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
#, fuzzy
msgid "Unable to set password on instance"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr "无法解æžå…ƒæ•°æ®é”®/值对"
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr "调整大å°è¯·æ±‚中的属性'flavorRef'无效。"
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr "调整大å°è¯·æ±‚è¦æ±‚有属性'flavorRef'。"
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr "无效的请求主体"
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr "无法解æžè¯·æ±‚中的imageRef。"
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr "无法找到用æ¥é‡æ–°åˆ›å»ºçš„镜åƒ"
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr "实体createImage需è¦å±žæ€§name"
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, fuzzy, python-format
msgid "Removing options '%s' from query"
msgstr "正在从查询语å¥ä¸­ç§»é™¤é€‰é¡¹ '%(unk_opt_str)s'"
@@ -2776,30 +2899,35 @@ msgstr "正在开å¯VLANæŽ¥å£ %s"
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, fuzzy, python-format
+msgid "Cell %(id)s not found."
+msgstr "没有找到规则 (%s)"
+
+#: nova/api/openstack/compute/contrib/cells.py:238
#, fuzzy
msgid "Cell name cannot be empty"
msgstr "安全组åç§°ä¸èƒ½æ˜¯ç©º"
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
#, fuzzy
msgid "No cell information in request"
msgstr "block_device_mapping %s"
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2896,14 +3024,14 @@ msgstr "host与block_migration必须确定"
msgid "Error in evacuate, %s"
msgstr "è¿ç§»é”™è¯¯ %s"
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, fuzzy, python-format
msgid "Fixed IP %s not found"
msgstr "è¯ä¹¦ %(certificate_id)s 没有找到。"
@@ -2954,7 +3082,7 @@ msgstr "浮动ip %(address)s 没有被关è”。"
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr "ç¼ºå°‘å‚æ•° dict"
@@ -3088,11 +3216,6 @@ msgstr "没找到文件"
msgid "Invalid timestamp for date %s"
msgstr "无效的元数æ®"
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr "密钥对 '%s' å·²ç»å­˜åœ¨ã€‚"
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr "addFixedIpç¼ºå°‘å‚æ•°'networkId'"
@@ -3209,16 +3332,16 @@ msgstr "添加安全组规则:%r"
msgid "Create networks failed"
msgstr "创建失败"
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, fuzzy, python-format
msgid "Quota for %s should be integer."
msgstr "version应该是整数"
@@ -3228,7 +3351,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr "错误格å¼çš„ scheduler_hints 属性"
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr "傿•°ä¸å¤Ÿåˆ›å»ºæœ‰æ•ˆè§„则。"
@@ -3247,16 +3370,16 @@ msgstr "显示id是 %s 的网络"
msgid "security group default rule not found"
msgstr "带有规则 %(rule_id)s 的安全组没有找到。"
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, fuzzy, python-format
msgid "Bad prefix for network in cidr %s"
msgstr "错误的to_global_ipv6å‰ç¼€ï¼š%s"
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr "没有指定安全组"
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr "安全组åç§°ä¸èƒ½æ˜¯ç©º"
@@ -3270,12 +3393,12 @@ msgstr "å¯åŠ¨å®žä¾‹ %r"
msgid "stop instance"
msgstr "åœæ­¢å®žä¾‹ %r"
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "未知链:%r"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
#, fuzzy
msgid "Unknown service"
msgstr "未知的guestmount错误"
@@ -3325,16 +3448,45 @@ msgstr "ä¸ºå· %s 创建快照"
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, fuzzy, python-format
+msgid "Loaded extension %s"
+msgstr "加载的扩展:%s"
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, fuzzy, python-format
+msgid "Ext version: %i"
+msgstr "Ext æè¿°: %s"
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, fuzzy, python-format
msgid "Reserving IP address %s"
msgstr "é‡Šæ”¾åœ°å€ %s"
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, fuzzy, python-format
msgid "Unreserving IP address %s"
msgstr "é‡Šæ”¾åœ°å€ %s"
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, fuzzy, python-format
+msgid "Running _create_extension_point for %s"
+msgstr "调用扩展工厂 %s"
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3344,124 +3496,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, fuzzy, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr "没有适用于消æ¯çš„æ–¹æ³•:%s"
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, fuzzy, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr "加载扩展 %(ext_factory)s 失败:%(exc)s"
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, fuzzy, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr "没有适用于消æ¯çš„æ–¹æ³•:%s"
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, fuzzy, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr "正在删除基文件:%s"
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, fuzzy, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr "把“%(method)sâ€æŠ•æ”¾åœ¨ä¸»æœº \"%(host)s\""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
-msgstr "没有为实例 %(instance_id)s 找到è¿ç§»å…¶çжæ€ä¸º %(status)s 。"
+msgid "Got update for instance: %(instance)s"
+msgstr "没有为实例 %(instance_id)s 找到å·ã€‚"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "没有为实例 %(instance_id)s 找到å·ã€‚"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, fuzzy, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr "没有为实例 %(instance_id)s 找到å·ã€‚"
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
#, fuzzy
msgid "Instance type for vpn instances"
@@ -3863,250 +4048,266 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
#, fuzzy
msgid "Cannot run any more instances of this type."
msgstr "超过实例的é…é¢ã€‚您无法è¿è¡Œæ›´å¤šæ­¤ç±»åž‹çš„实例。"
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, fuzzy, python-format
msgid "Can only run %s more instances of this type."
msgstr "超过实例的é…é¢ã€‚您åªèƒ½å†è¿è¡Œ %s 个此类型的实例。"
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, fuzzy, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr "%(pid)s å·²ç»è¶…过é…é¢ï¼Œè¯•图è¿è¡Œ %(min_count)s 个实例"
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr "%(pid)s å·²ç»è¶…过é…é¢ï¼Œè¯•图设置 %(num_metadata)s 个元数æ®å±žæ€§"
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
#, fuzzy
msgid "Metadata property key greater than 255 characters"
msgstr "安全组 %s ä¸èƒ½æ¯”255个字符更长。"
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
#, fuzzy
msgid "Metadata property value greater than 255 characters"
msgstr "安全组 %s ä¸èƒ½æ¯”255个字符更长。"
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "无法附加å·åˆ°å®žä¾‹ %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr "准备è¿è¡Œ %s 个实例"
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr "bdm %s"
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr "block_device_mapping %s"
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "准备开始终止实例"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, fuzzy, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr "实例类型 %(instance_type_id)s 没有找到。"
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
#, fuzzy
msgid "going to delete a resizing instance"
msgstr "准备开始终止实例"
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, fuzzy, python-format
msgid "instance's host %s is down, deleting from database"
msgstr "没有托管实例 %s,立刻删除"
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
#, fuzzy
msgid "Going to try to soft delete instance"
msgstr "准备å°è¯•软删除实例 %s"
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
#, fuzzy
msgid "Going to try to terminate instance"
msgstr "准备å°è¯•终止实例 %s"
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
#, fuzzy
msgid "Going to try to stop instance"
msgstr "准备å°è¯•åœæ­¢å®žä¾‹ %s"
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
#, fuzzy
msgid "Going to try to start instance"
msgstr "准备å°è¯•å¯åŠ¨å®žä¾‹ %s"
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr "æœç´¢æ¡ä»¶ï¼š %s"
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, fuzzy, python-format
msgid "snapshot for %s"
msgstr "开始为虚拟机 %s 快照"
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr "flavor_id为空。å‡å®šåœ¨è¿ç§»ã€‚"
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr "旧的实例类型 %(current_instance_type_name)s,新的实例类型 %(new_instance_type_name)s"
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, fuzzy, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr "%(pid)s å·²ç»è¶…过é…é¢ï¼Œè¯•图è¿è¡Œ %(min_count)s 个实例"
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, fuzzy, python-format
msgid "Going to try to live migrate instance to %s"
msgstr "准备å°è¯•终止实例 %s"
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr "密钥对å称长度必须在1到255个字符之间"
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr "安全组 %s æ—¢ä¸æ˜¯å­—ç¬¦ä¸²ä¹Ÿä¸æ˜¯unicode"
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr "安全组 %s ä¸èƒ½ä¸ºç©ºã€‚"
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, fuzzy, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr "傿•°GroupName的值 (%s) 无效。长度超过了上é™255。"
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr "安全组 %s ä¸èƒ½æ¯”255个字符更长。"
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr "创建安全组 %s"
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr "安全组 %s å·²ç»å­˜åœ¨"
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "无法销æ¯VBD %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "无法销æ¯VBD %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
#, fuzzy
msgid "Security group is still in use"
msgstr "安全组id应该是整数"
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr "删除安全组 %s"
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr "没有找到规则 (%s)"
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
#, fuzzy
msgid "Quota exceeded, too many security group rules."
msgstr "添加安全组规则:%r"
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr "æŽˆæƒ %s å®‰å…¨ç»„å…¥å£æƒé™"
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr "撤销 %s å®‰å…¨ç»„å…¥å£æƒé™"
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr "安全组id应该是整数"
@@ -4211,335 +4412,322 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, fuzzy, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr "无法把实例 (%(instance_id)s) è¿ç§»åˆ°å½“å‰ä¸»æœº (%(host)s)。"
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
#, fuzzy
msgid "Failed to check if instance shared"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr "当å‰çŠ¶æ€æ˜¯ %(drv_state)s,数æ®åº“çŠ¶æ€æ˜¯ %(db_state)s。"
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr "nova-computeé‡å¯åŽï¼Œå®žä¾‹æ­£åœ¨é‡å¯ã€‚"
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
#, fuzzy
msgid "Hypervisor driver does not support resume guests"
msgstr "虚拟机管ç†ç¨‹åºé©±åЍ䏿”¯æŒé˜²ç«å¢™è§„则"
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "挂起实例失败"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr "虚拟机管ç†ç¨‹åºé©±åЍ䏿”¯æŒé˜²ç«å¢™è§„则"
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, fuzzy, python-format
msgid "Unexpected power state %d"
msgstr "æ„外的状æ€ç "
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr "正在检查状æ€"
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr "正在设置 bdm %s"
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
#, fuzzy
msgid "Failed to dealloc network for deleted instance"
msgstr "释放实例的网络"
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
#, fuzzy
msgid "Instance was deleted during spawn."
msgstr "实例生产失败"
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, fuzzy, python-format
msgid "Error: %s"
msgstr "æ•°æ®åº“错误:%s"
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
-msgstr ""
-"é•œåƒ '%(image_id)s' 的大å°ä¸º %(size_bytes)d ,超过实例类型 instance_type 所å…è®¸çš„å¤§å° "
-"%(allowed_size_bytes)d"
-
-#: nova/compute/manager.py:1141
+#: nova/compute/manager.py:1114
msgid "Starting instance..."
msgstr "正在å¯åŠ¨è™šæ‹Ÿæœº"
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1138
+#, fuzzy
+msgid "Allocating IP information in the background."
+msgstr "没有找到floating_ip"
+
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr "实例网络设置失败"
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr "实例的network_info:|%s|"
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr "实例å—设备设置失败"
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr "实例生产失败"
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr "释放实例的网络"
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
-msgstr "%(action_str)s 实例"
-
-#: nova/compute/manager.py:1338
+#: nova/compute/manager.py:1306
#, fuzzy
msgid "Failed to deallocate network for instance."
msgstr "释放实例的网络"
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr "%(action_str)s 实例"
+
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr "忽略异常 DiskNotFound: %s"
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, fuzzy, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr "忽略异常 DiskNotFound: %s"
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr "终止bdm %s"
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr "%s。把实例的 vm_state设置为ERROR"
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
#, fuzzy
msgid "Rebuilding instance"
msgstr "æ­£åœ¨é‡æ–°åˆ›å»ºå®žä¾‹ %s"
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, fuzzy, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr "%(path)s 在共享存储上:%(reason)s"
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "ä¸ºå· %s 创建快照"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
#, fuzzy
msgid "Rebooting instance"
msgstr "正在é‡å¯è™šæ‹Ÿæœº %s"
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, fuzzy, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr "试图é‡å¯ä¸€ä¸ªæ²¡æœ‰è¿è¡Œçš„实例:%(instance_uuid)s (状æ€ï¼š%(state)s 预计:%(running)s)"
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "æ— æ³•é‡æ–°åˆ›å»ºå®žä¾‹ [%(instance_uuid)s]: %(exc)s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
#, fuzzy
msgid "Instance disappeared during reboot"
msgstr "实例 %s:é‡å¯"
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
#, fuzzy
msgid "instance snapshotting"
msgstr "实例 %s: 快照中"
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, fuzzy, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr "试图为一个没有è¿è¡Œçš„实例快照:%(instance_uuid)s (状æ€ï¼š%(state)s 预计:%(running)s)"
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr "找到 %(num_images)d ä¸ªé•œåƒ (rotation: %(rotation)d)"
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr "è½®æ¢å‡º%d个备份"
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr "æ­£åœ¨åˆ é™¤é•œåƒ %s"
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr "设置管ç†å‘˜å¯†ç å¤±è´¥ã€‚实例 %s 没有è¿è¡Œ"
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
#, fuzzy
msgid "Root password set"
msgstr "实例 %s:Root密ç å·²è®¾ç½®"
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
#, fuzzy
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr "该驱动ä¸èƒ½æ‰§è¡Œset_admin_password。"
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, fuzzy, python-format
msgid "set_admin_password failed: %s"
msgstr "该驱动ä¸èƒ½æ‰§è¡Œset_admin_password。"
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
#, fuzzy
msgid "error setting admin password"
msgstr "设置管ç†å‘˜å¯†ç å‡ºé”™"
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, fuzzy, python-format
msgid ""
"trying to inject a file into a non-running (state: "
@@ -4548,179 +4736,184 @@ msgstr ""
"试图把一个文件注入到没有è¿è¡Œçš„实例:%(instance_uuid)s (状æ€: %(current_power_state)s 预计: "
"%(expected_state)s)"
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, fuzzy, python-format
msgid "injecting file to %(path)s"
msgstr "注入文件路径:'%s'"
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "挂起实例失败"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, fuzzy, python-format
msgid "Driver Error: %s"
msgstr "æ•°æ®åº“错误:%s"
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
#, fuzzy
msgid "Unrescuing"
msgstr "实例 %sï¼šå–æ¶ˆæ•‘æ´"
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, fuzzy, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr "设置实例 %(instance_uuid)s 至 ERROR 状æ€"
+
+#: nova/compute/manager.py:2375
#, fuzzy
msgid "Instance has no source host"
msgstr "实例没有å·ã€‚"
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr "ç›®æ ‡ä¸Žæ¥æºä¸€æ ·ã€‚"
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
#, fuzzy
msgid "Pausing"
msgstr "正在更新。"
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
#, fuzzy
msgid "Retrieving diagnostics"
msgstr "实例 %s :获å–诊断"
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
#, fuzzy
msgid "Reset network"
msgstr "é‡ç½®ç½‘络"
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
#, fuzzy
msgid "Inject network info"
msgstr "实例 %s:注入网络信æ¯"
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr "将注入的network_info:|%s|"
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
#, fuzzy
msgid "Get console output"
msgstr "获å–实例 %s 控制å°è¾“出"
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
#, fuzzy
msgid "Getting vnc console"
msgstr "实例 %s:正在获得VNC控制å°"
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
#, fuzzy
msgid "Getting spice console"
msgstr "实例 %s:正在获得VNC控制å°"
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr "å· %(volume_id)s 正在 %(mountpoint)s 上å¯åЍ"
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr "æ­£åœ¨æŠŠå· %(volume_id)s 附加到 %(mountpoint)s"
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, fuzzy, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr "å· %(volume_id)s 正在 %(mountpoint)s 上å¯åЍ"
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "æ­£åœ¨æŠŠå· %(volume_id)s 附加到 %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr "å· %(volume_id)s 从挂载点 %(mp)s 分离"
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "从未知实例%s中分离å·"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "æ­£åœ¨æŠŠå· %(volume_id)s 附加到 %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, fuzzy, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr "实例 %s 的网络分é…"
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, fuzzy, python-format
msgid "Port %(port_id)s is not attached"
msgstr "网络 %(network_id)s 没有找到。"
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, fuzzy, python-format
msgid "Host %(host)s not found"
msgstr "主机 %(host)s 没有找到。"
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr "预在线è¿ç§»åœ¨%(dest)s失败"
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
#, fuzzy
msgid "_post_live_migration() is started.."
msgstr "post_live_migration()å·²ç»å¯åŠ¨ã€‚"
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr "把实例è¿ç§»åˆ° %(dest)s æˆåŠŸå®Œæˆã€‚"
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
@@ -4728,171 +4921,171 @@ msgstr ""
"你会看到错误“libvirt: QEMU error: Domain not found: no domain with matching "
"name。â€è¿™ä¸ªé”™è¯¯å¯ä»¥æ”¾å¿ƒçš„忽略。"
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
#, fuzzy
msgid "Post operation of migration started"
msgstr "è¿ç§»åŽæ“作å¯åЍ"
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, fuzzy, python-format
msgid "Failed to get compute_info for %s"
msgstr "为ip: %s获å–元数æ®å¤±è´¥"
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr "å‘现 %(migration_count)d 个超过 %(confirm_window)d 秒未ç»ç¡®è®¤çš„è¿ç§»"
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, fuzzy, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr "为实例 %(instance_uuid)s 关闭虚拟机"
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, fuzzy, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr "没有找到实例 %(instance_id)s"
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
#, fuzzy
msgid "In ERROR state"
msgstr "节点处于未知的错误状æ€ã€‚"
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr "更新带宽使用缓存"
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
#, fuzzy
msgid "Updating volume usage cache"
msgstr "更新带宽使用缓存"
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr "更新主机状æ€"
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr "在数æ®åº“中找到 %(num_db_instances)s个实例,在虚拟机管ç†ç¨‹åºæ‰¾åˆ° %(num_vm_instances)s 个实例。"
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
#, fuzzy
msgid "Instance is not (soft-)deleted."
msgstr "实例未å¯åЍ"
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
#, fuzzy
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr "FLAGS.reclaim_instance_interval <= 0,跳过..."
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr "回收删除的实例"
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, fuzzy, python-format
msgid "Deleting orphan compute node %s"
msgstr "LoggingVolumeDriver: %s"
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, fuzzy, python-format
msgid "No service record for host %s"
msgstr "计算节点 %s 没有æœåŠ¡"
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, fuzzy, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr "检测标签å为 '%(name_label)s' 的实例,这些实例被标识为DELETEDå´ä»ç„¶å­˜åœ¨äºŽä¸»æœºä¸Šã€‚"
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, fuzzy, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr "é”€æ¯æ ‡ç­¾å为 '%(name_label)s' 的实例,这些实例被标识为DELETEDå´ä»ç„¶å­˜åœ¨äºŽä¸»æœºä¸Šã€‚"
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, fuzzy, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr "无法识别的FLAGS.running_deleted_instance_actionçš„å–值 '%(action)s'"
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, fuzzy, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr "设置实例 %(instance_uuid)s 至 ERROR 状æ€"
@@ -5008,18 +5201,18 @@ msgstr "无法找到实例 %s 的宿主机"
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
#, fuzzy
msgid "Invalid block_device_mapping_destroy invocation"
msgstr "block_device_mapping %s"
@@ -5100,56 +5293,72 @@ msgstr "检查令牌:%(token)s, %(token_valid)s)"
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
#, fuzzy
msgid "Failed to notify cells of instance update"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
#, fuzzy
msgid "Failed to notify cells of instance fault"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr "无法识别的 read_deleted å–值â€%s“"
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, fuzzy, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr "实例 %s:已救æ´"
+
+#: nova/db/sqlalchemy/api.py:882
+#, fuzzy, python-format
+msgid "Invalid floating IP %s in request"
+msgstr "实例 %s:已救æ´"
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, fuzzy, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr "实例 %s:已救æ´"
+
+#: nova/db/sqlalchemy/api.py:1344
+#, fuzzy, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr "实例 %s:已救æ´"
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, fuzzy, python-format
msgid "Invalid instance id %s in request"
msgstr "实例 %s:已救æ´"
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5166,56 +5375,61 @@ msgstr "version应该是整数"
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+#, fuzzy
+msgid "Unsupported id columns type"
+msgstr "䏿”¯æŒçš„Content-Type"
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5252,32 +5466,37 @@ msgstr "把 %(image_location)s 下载到 %(image_path)s失败"
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr "解密 %(image_location)s 到 %(image_path)s失败"
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr "解包 %(image_location)s 到 %(image_path)s 失败"
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr "上传 %(image_location)s 到 %(image_path)s 失败"
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr "解密ç§é’¥å¤±è´¥ï¼š%s"
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr "解密åˆå§‹åŒ–vector失败:%s"
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr "è§£å¯†é•œåƒæ–‡ä»¶ %(image_file)s 失败:%(err)s"
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr "镜åƒä¸­ä¸å®‰å…¨çš„æ–‡ä»¶å"
@@ -5296,16 +5515,20 @@ msgstr "错误的to_global_ipv6å‰ç¼€ï¼š%s"
msgid "Bad project_id for to_global_ipv6: %s"
msgstr "错误的to_global_ipv6 oject_id;%s"
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
#, fuzzy
msgid "Failed storing info cache"
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, fuzzy, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr "æŠŠåœ°å€ %(public_ip)s å…³è”到实例 %(instance_id)s"
@@ -5456,67 +5679,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, fuzzy, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr "Pid %d è¿‡æœŸäº†ï¼Œé‡æ–°å¯åЍdnsmasq"
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr "挂起进程 dnsmasq 时抛出 %s"
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr "Pid %d è¿‡æœŸäº†ï¼Œé‡æ–°å¯åЍdnsmasq"
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr "æ€æŽ‰è¿›ç¨‹ radvd 时抛出 %s"
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr "Pid %d è¿‡æœŸäº†ï¼Œé‡æ–°å¯åЍradvd"
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, fuzzy, python-format
msgid "Net device removed: '%s'"
msgstr "无效的状æ€ï¼š'%s'"
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr "正在开å¯VLANæŽ¥å£ %s"
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, fuzzy, python-format
msgid "Starting Bridge %s"
msgstr "ä¿è¯æ¡¥ %s"
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, fuzzy, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr "ä¿è¯vlan %(vlan)s 和桥 %(bridge)s"
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, fuzzy, python-format
msgid "Failed to add interface: %s"
msgstr "挂起实例失败"
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, fuzzy, python-format
msgid "Starting bridge %s "
msgstr "ä¿è¯æ¡¥ %s"
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, fuzzy, python-format
msgid "Done starting bridge %s"
msgstr "ä¿è¯æ¡¥ %s"
@@ -5683,80 +5906,80 @@ msgstr "_delete: %s"
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr "é—ç•™çš„ç½‘ç»œä¿¡æ¯ nw_info è¦æ±‚使用 IPv4 å­ç½‘"
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
-msgstr ""
+#: nova/network/quantumv2/__init__.py:67
+#, fuzzy
+msgid "quantum authentication failed"
+msgstr "认è¯é”™è¯¯"
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, fuzzy, python-format
msgid "allocate_for_instance() for %s"
msgstr "实例 %s 的网络分é…"
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, fuzzy, python-format
msgid "empty project id for instance %s"
msgstr "实例 %s 的网络分é…"
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
#, fuzzy
msgid "Port not found"
msgstr "没有找到主机"
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, fuzzy, python-format
msgid "deallocate_for_instance() for %s"
msgstr "为实例 |%s| 解除网络分é…"
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, fuzzy, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr "在数æ®åº“删除å·å¤±è´¥"
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, fuzzy, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr "在数æ®åº“删除å·å¤±è´¥"
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, fuzzy, python-format
msgid "get_instance_nw_info() for %s"
msgstr "实例的network_info:|%s|"
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, fuzzy, python-format
msgid "validate_networks() for %s"
msgstr "错误的网络格å¼"
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, fuzzy, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr "找ä¸åˆ°é€‚åˆid %(id)s 的浮动IP。"
@@ -5766,68 +5989,73 @@ msgstr "找ä¸åˆ°é€‚åˆid %(id)s 的浮动IP。"
msgid "Quantum Error creating security group %s"
msgstr "删除安全组 %s"
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, fuzzy, python-format
+msgid "Quantum Error updating security group %s"
+msgstr "删除安全组 %s"
+
+#: nova/network/security_group/quantum_driver.py:124
#, fuzzy, python-format
msgid "Quantum security group %s not found"
msgstr "删除安全组 %s"
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, fuzzy, python-format
msgid "Quantum Error: %s"
msgstr "抓到错误:%s"
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
#, fuzzy
msgid "Quantum Error getting security groups"
msgstr "删除安全组 %s"
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
#, fuzzy
msgid "Security group id should be uuid"
msgstr "安全组id应该是整数"
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, fuzzy, python-format
msgid "Quantum Error getting security group %s"
msgstr "删除安全组 %s"
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
#, fuzzy
msgid "Quantum Error:"
msgstr "抓到错误:%s"
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, fuzzy, python-format
msgid "Quantum security group rule %s not found"
msgstr "带有规则 %(rule_id)s 的安全组没有找到。"
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, fuzzy, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr "没有找到安全组 %(security_group_id)s 针对项目 %(project_id)s 。"
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, fuzzy, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5839,6 +6067,26 @@ msgstr "安全组 %(security_group_id)s 没有与实例 %(instance_id)s å…³è”ã€
msgid "This rule already exists in group %s"
msgstr "è¿™æ¡è§„则已ç»å­˜åœ¨äºŽç»„%s 中"
+#: nova/objects/base.py:54
+#, fuzzy, python-format
+msgid "Error setting %(attr)s"
+msgstr "设置管ç†å‘˜å¯†ç å‡ºé”™"
+
+#: nova/objects/base.py:145
+#, fuzzy
+msgid "Invalid version string"
+msgstr "䏿­£ç¡®çš„server_string:%s"
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, fuzzy, python-format
msgid "Original exception being dropped: %s"
@@ -5874,17 +6122,17 @@ msgstr "èŽ·å¾—æ–‡ä»¶é” \"%(lock)s\" 为方法 \"%(method)s\"...é”"
msgid "Deprecated: %s"
msgstr "æ„外错误:%s"
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr "syslog设备必须作为一个 %s 。"
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, fuzzy, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr "ç±» %(fullname)s æ˜¯ä¸æŽ¨è的:%(msg)s"
@@ -5983,21 +6231,78 @@ msgstr "SSHä¸Šä¸æ”¯æŒçŽ¯å¢ƒå˜é‡"
msgid "process_input not supported over SSH"
msgstr "SSHä¸Šä¸æ”¯æŒçš„è¿›ç¨‹è¾“å…¥å‚æ•°ã€‚"
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+#, fuzzy
+msgid "Full set of CONF:"
+msgstr "标记全集:"
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, fuzzy, python-format
+msgid "Caught %s, exiting"
+msgstr "快照 %s:正在删除"
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, fuzzy, python-format
+msgid "Starting %d workers"
+msgstr "起始地å€"
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr "æ•°æ®åº“异常被包裹。"
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, fuzzy, python-format
msgid "SQL connection failed. %s attempts left."
msgstr "SQL连接失败 (%(connstring)s)。还剩 %(attempts)d 次。"
@@ -6174,18 +6479,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, fuzzy, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr "删除 %(base_file)s 失败,错误是 %(error)s"
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr "返回 %s 异常给调用者"
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6216,44 +6526,44 @@ msgid ""
msgstr "ä½äºŽ%(hostname)s:%(port)dçš„AMQPæœåС噍ä¸å¯è¾¾ï¼š%(err_str)s。%(sleep_time)d ç§’é’ŸåŽè¯·å†å°è¯•。"
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr "为topic '%(topic)s'声明消费者失败:%(err_str)s"
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr "等待RPCå“应超时:%s"
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr "从队列中消费消æ¯å¤±è´¥ï¼š%s"
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr "ç»™topic '%(topic)s'å‘布消æ¯å¤±è´¥ï¼š%(err_str)s"
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, fuzzy, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr "无法连接到AMQPæœåŠ¡å™¨ï¼š%s "
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr "连接到 %s çš„AMQPæœåС噍"
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr "é‡å»ºAMQP队列"
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6522,38 +6832,38 @@ msgstr "å°è¯•创建 %(num_instances)d 个实例"
msgid "Request Spec: %s"
msgstr "请求:%s"
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "没有为实例 %(instance_id)s 找到å·ã€‚"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr "过滤掉的主机 %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, fuzzy, python-format
msgid "Weighed %(hosts)s"
msgstr "过滤掉的主机 %(hosts)s"
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, fuzzy, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr "无法è¿ç§» %(instance_id)s 到 %(dest)s 上:缺少内存(主机:%(avail)s <= 实例:%(mem_inst)s)"
@@ -6625,10 +6935,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6636,6 +6953,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6671,14 +6993,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6748,47 +7070,47 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr "与模型æœåС噍(model server)的连接已æ¢å¤ï¼"
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr "失去与模型æœåŠ¡å™¨çš„è¿žæŽ¥"
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
#, fuzzy
msgid "memcached_servers not defined"
msgstr "æœåС噍å称未定义"
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6827,12 +7149,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6877,46 +7199,6 @@ msgstr ""
msgid "already detached"
msgstr "å·²ç»åˆ†ç¦»"
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr "请扩展模拟的 libvirt æ¨¡å—æ¥æ”¯æŒæ ‡è®°"
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-#, fuzzy
-msgid "fake vswitch not found"
-msgstr "没有找到标记 [%s]"
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-"下é¢çš„è¿ç§»ç¼ºå°‘了é™çº§ï¼š\n"
-"\t%s"
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr "在%s 创建文件模拟客户代ç†"
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr "移除在 %s çš„æ¨¡æ‹Ÿçš„å®¢æˆ·ä»£ç†æ–‡ä»¶"
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6929,18 +7211,21 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
#, fuzzy
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr "%(pid)s å·²ç»è¶…过é…é¢ï¼Œè¯•图è¿è¡Œ %(min_count)s 个实例"
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6949,7 +7234,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr "正在è¿è¡Œçš„实例:%s"
@@ -6966,26 +7251,35 @@ msgstr "终止实例之åŽï¼š%s"
msgid "Internal error"
msgstr "内部错误"
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr "å¼ºåˆ¶æ€æ­»å®žä¾‹åŽï¼š%s"
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
#, fuzzy
msgid "spawn error"
msgstr "未知的guestmount错误"
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+"下é¢çš„è¿ç§»ç¼ºå°‘了é™çº§ï¼š\n"
+"\t%s"
+
+#: nova/tests/integrated/test_api_samples.py:181
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr "åœ°å€ |%(address)s| 没有分é…"
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6995,22 +7289,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, fuzzy, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr "åœ°å€ |%(address)s| 没有分é…"
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -7075,31 +7369,70 @@ msgstr "æ„外的状æ€ç "
msgid "Decoding JSON: %s"
msgstr "è§£ç JSON:%s"
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+#, fuzzy
+msgid "fake vswitch not found"
+msgstr "没有找到标记 [%s]"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr "请扩展模拟的 libvirt æ¨¡å—æ¥æ”¯æŒæ ‡è®°"
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr "在%s 创建文件模拟客户代ç†"
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr "移除在 %s çš„æ¨¡æ‹Ÿçš„å®¢æˆ·ä»£ç†æ–‡ä»¶"
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, fuzzy, python-format
msgid "Loading compute driver '%s'"
msgstr "LoggingVolumeDriver: %s"
-#: nova/virt/driver.py:962
-#, fuzzy, python-format
+#: nova/virt/driver.py:980
+#, fuzzy
msgid "Unable to load the virtualization driver"
msgstr "无法加载虚拟驱动:%s"
@@ -7256,22 +7589,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "为实例 |%s| åˆ†é…æµ®åЍIP"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, fuzzy, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr "正在从glanceé•œåƒæœåŠ¡å™¨ä¸­ä¸‹è½½é•œåƒ %s"
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "å°† %(injection)s æ³¨å…¥åˆ°é•œåƒ %(img_id)s"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7291,7 +7624,7 @@ msgstr "获å–实例 %s 控制å°è¾“出"
msgid "PXE deploy failed for instance %s"
msgstr "实例 %s 的网络分é…"
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7301,28 +7634,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr "等待RPCå“应返回超时"
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "实例 %s 的网络分é…"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "获å–实例 %s 控制å°è¾“出"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr "节点处于未知的错误状æ€ã€‚"
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, fuzzy, python-format
msgid "Tilera deploy failed for instance %s"
msgstr "无法找到实例 %s 的宿主机"
@@ -7906,7 +8239,7 @@ msgstr "实例代ç†ç‰ˆæœ¬ï¼š%s"
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr "正在更新主机状æ€"
@@ -8088,51 +8421,51 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr "实例 %s:开始执行 finish_revert_migration"
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "找ä¸åˆ°é€‚åˆid %(id)s 的浮动IP。"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
#, fuzzy
msgid "finish_migration called"
msgstr "实例 %s:开始执行 finish_migration"
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, fuzzy, python-format
msgid "Cannot find boot VHD file: %s"
msgstr "未知的基文件:%s"
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8272,12 +8605,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "为实例 |%s| åˆ†é…æµ®åЍIP"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, fuzzy, python-format
msgid "Creating config drive at %(path)s"
msgstr "注入文件路径:'%s'"
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, fuzzy, python-format
msgid "Creating config drive failed with error: %s"
msgstr "注入文件路径:'%s'"
@@ -8443,7 +8776,7 @@ msgstr "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "正在创建虚拟机实例快照 %s "
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr "无法确定iscsi initiatoråå­—"
@@ -8477,247 +8810,247 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr "无法为VDI %s 找到VBD"
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr "正在连接 libvirt:%s"
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, fuzzy, python-format
msgid "URI %s does not support events"
msgstr "å·ç»„ %s ä¸å­˜åœ¨"
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr "连接 libvirt 失败"
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "正在连接 libvirt:%s"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr "é”€æ¯æ—¶å‘生错误。Code=%(errcode)s Error=%(e)s"
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
#, fuzzy
msgid "During wait destroy, instance disappeared."
msgstr "%s 在è¿è¡Œä¸­æ¶ˆå¤±äº†ã€‚"
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr "å®žä¾‹é”€æ¯æˆåŠŸã€‚"
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
#, fuzzy
msgid "Going to destroy instance again."
msgstr "å‡†å¤‡åœæ­¢å®žä¾‹"
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr "在 undefine æ—¶ libvirt å‘生错误。Code=%(errcode)s Error=%(e)s"
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, fuzzy, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr "在 undefine æ—¶ libvirt å‘生错误。Code=%(errcode)s Error=%(e)s"
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr "删除实例文件 %(target)s"
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, fuzzy, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr "schedule_%(method)s 失败:%(ex)s"
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
#, fuzzy
msgid "Could not determine fibre channel world wide node names"
msgstr "无法确定iscsi initiatoråå­—"
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
#, fuzzy
msgid "Could not determine fibre channel world wide port names"
msgstr "无法确定iscsi initiatoråå­—"
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
#, fuzzy
msgid "During detach_volume, instance disappeared."
msgstr "%s 在è¿è¡Œä¸­æ¶ˆå¤±äº†ã€‚"
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
#, fuzzy
msgid "attaching network adapter failed."
msgstr "没有网络定义。"
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
#, fuzzy
msgid "During detach_interface, instance disappeared."
msgstr "%s 在è¿è¡Œä¸­æ¶ˆå¤±äº†ã€‚"
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
#, fuzzy
msgid "detaching network adapter failed."
msgstr "没有网络定义。"
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
#, fuzzy
msgid "Instance soft rebooted successfully."
msgstr "实例æˆåŠŸé‡å¯ã€‚"
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
#, fuzzy
msgid "Failed to soft reboot instance."
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
#, fuzzy
msgid "Instance shutdown successfully."
msgstr "实例æˆåŠŸç”Ÿäº§ã€‚"
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr "实例æˆåŠŸé‡å¯ã€‚"
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr "实例在è¿è¡Œ"
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr "实例æˆåŠŸç”Ÿäº§ã€‚"
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr "data:%(data)r, fpath: %(fpath)r"
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "用户没有管ç†å‘˜æƒé™"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr "正在创建镜åƒ"
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, fuzzy, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr "å°† %(injection)s æ³¨å…¥åˆ°é•œåƒ %(img_id)s"
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, fuzzy, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr "忽略å‘é•œåƒ %(img_id)s 注入的数æ®çš„错误 (%(e)s)"
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8725,74 +9058,74 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr "查找 %(instance_name)sæ—¶libvirt出错:[é”™è¯¯ä»£ç  %(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
#, fuzzy
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr "无法得到CPUçš„æ•°ç›®ï¼Œå› ä¸ºè¿™ä¸ªå‡½æ•°ä¸æ˜¯ç»™è¿™ä¸ªå¹³å°æ‰§è¡Œçš„。这个错误å¯ä»¥è¢«æ”¾å¿ƒå¿½ç•¥ã€‚"
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr "libvirt版本过旧(䏿”¯æŒgetVersion)"
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "正在获å–é•œåƒ %s 的大å°"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8800,37 +9133,37 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, fuzzy, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr "创建tmpfile %s æ¥é€šçŸ¥å…¶ä»–çš„è®¡ç®—èŠ‚ç‚¹éœ€è¦æŒ‚载相åŒçš„存储。"
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr "å—存储è¿ç§»æ— æ³•在共享存储使用"
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
#, fuzzy
msgid "Live migration can not be used without shared storage."
msgstr "å—存储è¿ç§»æ— æ³•在共享存储使用"
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, fuzzy, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
@@ -8839,7 +9172,7 @@ msgstr ""
"无法è¿ç§»%(instance_id)s 到 %(dest)s 上:缺少ç£ç›˜(主机:%(available)s <= "
"实例:%(necessary)s)"
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
@@ -8848,7 +9181,7 @@ msgstr ""
"å·²å¯åŠ¨å®žä¾‹çš„CPUä¿¡æ¯ï¼š\n"
"%s"
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8863,71 +9196,71 @@ msgstr ""
"\n"
"å‚考 %(u)s"
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr "创建tmpfile %s æ¥é€šçŸ¥å…¶ä»–çš„è®¡ç®—èŠ‚ç‚¹éœ€è¦æŒ‚载相åŒçš„存储。"
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, fuzzy, python-format
msgid "Live Migration failure: %(e)s"
msgstr "预在线è¿ç§»åœ¨%(dest)s失败"
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, fuzzy, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr "plug_vifs() 失败%(cnt)d æ¬¡ã€‚æœ€å¤šé‡æ–°å°è¯• %(max_retry)d 次在主机 %(hostname)s。"
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, fuzzy, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr "查找 %(instance_name)sæ—¶libvirt出错:[é”™è¯¯ä»£ç  %(error_code)s] %(ex)s"
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr "因它åƒå·ï¼Œæ‰€ä»¥è·³è¿‡ %(path)s"
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
#, fuzzy
msgid "Starting migrate_disk_and_power_off"
msgstr "实例 %s:开始执行 migrate_disk_and_power_off"
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
#, fuzzy
msgid "Instance running successfully."
msgstr "实例 %s æˆåŠŸè¿è¡Œã€‚"
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
#, fuzzy
msgid "Starting finish_migration"
msgstr "实例 %s:开始执行 finish_migration"
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
#, fuzzy
msgid "Starting finish_revert_migration"
msgstr "实例 %s:开始执行 finish_revert_migration"
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, fuzzy, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr "删除实例文件 %(target)s"
@@ -8960,11 +9293,11 @@ msgstr "å称为 %(name)s çš„nwfilter(%(instance_filter_name)s) 未找到。"
msgid "iptables firewall: Setup Basic Filtering"
msgstr "iptables 防ç«å¢™ï¼šè®¾ç½®åŸºæœ¬çš„过滤规则"
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, fuzzy, python-format
msgid "Unknown image_type=%s"
msgstr "未知的ç£ç›˜é•œåƒå¥æŸ„:%s"
@@ -9129,7 +9462,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -9137,17 +9470,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -9236,53 +9569,53 @@ msgid ""
"number: %(tries)s"
msgstr "在 %(mount_device)s 上还没有找到iSCSIå·ã€‚将冿¬¡æ‰«æå¹¶é‡è¯•。å°è¯•次数:%(tries)s"
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, fuzzy, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr "找到iSCSI节点 %(mount_device)s (ç»è¿‡%(tries)s æ¬¡å†æ‰«æï¼‰"
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, fuzzy, python-format
msgid "%s is already mounted"
msgstr "镜åƒå·²ç»æŒ‚è½½"
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, fuzzy, python-format
msgid "AoE device not found at %s"
msgstr "在 %s 未找到iSCSI设备"
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, fuzzy, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr "在 %(mount_device)s 上还没有找到iSCSIå·ã€‚将冿¬¡æ‰«æå¹¶é‡è¯•。å°è¯•次数:%(tries)s"
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, fuzzy, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr "找到iSCSI节点 %(mount_device)s (ç»è¿‡%(tries)s æ¬¡å†æ‰«æï¼‰"
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
#, fuzzy
msgid "Fibre Channel device not found."
msgstr "在 %s 未找到iSCSI设备"
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, fuzzy, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr "在 %(mount_device)s 上还没有找到iSCSIå·ã€‚将冿¬¡æ‰«æå¹¶é‡è¯•。å°è¯•次数:%(tries)s"
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, fuzzy, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr "找到iSCSI节点 %(mount_device)s (ç»è¿‡%(tries)s æ¬¡å†æ‰«æï¼‰"
@@ -9292,20 +9625,20 @@ msgstr "找到iSCSI节点 %(mount_device)s (ç»è¿‡%(tries)s æ¬¡å†æ‰«æï¼‰"
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9329,62 +9662,62 @@ msgstr "正在删除基文件:%s"
msgid "Ensuring image '%s' exists on IVM"
msgstr "ä¸Šä¼ é•œåƒ %s"
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "在volume_utils创建存储库"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, fuzzy, python-format
msgid "Copying image to the device '%s'"
msgstr "正在获å–é•œåƒ %s 的大å°"
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
#, fuzzy
msgid "Snapshot added to glance."
msgstr "过滤器添加给实例 %s"
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "无法使用全局角色 %(role_id)s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9432,7 +9765,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9585,27 +9918,27 @@ msgstr "针对useconnection_type=vmwareapi必须指定vmwareapi_host_ip,vmwareap
msgid "VMware Cluster %s is not found"
msgstr "没有找到标记 [%s]"
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr "在vmwareapi:_create_session,得到这个异常:%s"
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr "在vmwareapi:_call_method,得到这个异常:%s"
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr "任务 [%(task_name)s] %(task_ref)s 状æ€ï¼šæˆåŠŸ"
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr "任务 [%(task_name)s] %(task_ref)s 状æ€ï¼šé”™è¯¯ %(error_info)s"
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr "在vmwareapi:_poll_task,得到这个错误 %s"
@@ -9672,18 +10005,18 @@ msgstr "Glance é•œåƒ %s åœ¨è¢«æ€æ­»çš„状æ€"
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr "Glance é•œåƒ %(image_id)s å¤„äºŽæœªçŸ¥çŠ¶æ€ - %(state)s"
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr "ESX SOAP æœåŠ¡å™¨åœ¨å“应里为托管系统返回一个空的端å£ç»„"
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr "正在ESX主机上创建å称为 %s 的端å£ç»„"
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr "å·²ç»åœ¨ESX主机上创建了å称为 %s 的端å£ç»„"
@@ -10054,56 +10387,56 @@ msgstr "正在删除volumeID:%s "
msgid "Renamed the VM from %s"
msgstr "从快照 %s 创建å·"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr "找到%(instance_count)d个超过%(timeout)d秒悬挂的é‡å¯"
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, fuzzy, python-format
msgid "Automatically hard rebooting %d"
msgstr "自动冷é‡å¯ %d"
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr "get_diagnostics 没有在 vmwareapi 里实现"
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
#, fuzzy
msgid "Reconfiguring VM instance to set the machine id"
msgstr "æ­£åœ¨é‡æ–°é…置虚拟机实例 %s æ¥é™„加镜åƒç£ç›˜"
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
#, fuzzy
msgid "Reconfigured VM instance to set the machine id"
msgstr "å·²ç»é‡æ–°é…置虚拟机实例 %s æ¥é™„加于镜åƒç£ç›˜"
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, fuzzy, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr "æ­£åœ¨é‡æ–°é…置实例 %(name)s æ¥è®¾ç½®æœºå™¨çš„id为ip - %(ip_addr)s"
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, fuzzy, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr "å·²ç»é‡æ–°é…置虚拟机实例 %(name)s æ¥è®¾ç½®æœºå™¨çš„id为ip - %(ip_addr)s"
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr "正在使用路径 %s 创建目录"
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr "å·²ç»åˆ›å»ºè·¯å¾„为 %s 的目录"
@@ -10226,24 +10559,24 @@ msgstr "没有在数æ®åº“找到å·"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "挂载点 %(mountpoint)s 从实例 %(instance_name)s 分离"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, fuzzy, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr "超时:调用 %(method)s 超时。虚拟机id=%(instance_uuid)s; args=%(args)r"
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, fuzzy, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr "没有执行:代ç†ä¸æ”¯æŒ %(method)s 的调用。虚拟机id=%(instance_uuid)s; args=%(args)r"
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, fuzzy, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr "对 %(method)s 的调用返回错误:%(e)s。"
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, fuzzy, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
@@ -10252,83 +10585,87 @@ msgstr ""
"%(method)s 的代ç†è°ƒç”¨è¿”回无效的å“应:%(ret)r。虚拟机id=%(instance_uuid)s; path=%(path)s; "
"args=%(addl_args)r"
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr "查询代ç†ç‰ˆæœ¬å¤±è´¥ï¼š%(resp)r"
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr "查询代ç†ç‰ˆæœ¬"
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, fuzzy, python-format
msgid "Updating agent to %s"
msgstr "æŠŠä»£ç†æ›´æ–°ä¸º %s"
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr "更新代ç†å¤±è´¥ï¼š%(resp)r"
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr "设置管ç†å‘˜å¯†ç "
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr "交æ¢é’¥åŒ™å¤±è´¥ï¼š%(resp)r"
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr "更新密ç å¤±è´¥ï¼š%(resp)r"
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, fuzzy, python-format
msgid "Injecting file path: %r"
msgstr "注入文件路径:'%s'"
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr "注入文件失败:%(resp)r"
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr "é‡ç½®ç½‘络"
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, fuzzy, python-format
msgid "Failed to reset network: %(resp)r"
msgstr "注入文件失败:%(resp)r"
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr "安装在该镜åƒçš„XenServer工具å¯ä»¥è¿›è¡Œç½‘络注入。网络文件ä¸ä¼šè¢«æ“作。"
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr "è¯¥é•œåƒæœ‰XenServer工具,但是ä¸èƒ½è¿›è¡Œç½‘络注入"
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr "没有在该镜åƒä¸Šå®‰è£…XenServer工具"
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr "OpenSSL错误:%s"
@@ -10347,24 +10684,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, fuzzy, python-format
msgid "Could not determine key: %s"
msgstr "解密ç§é’¥å¤±è´¥ï¼š%s"
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr "䏿”¯æŒåœ¨XenServerå¯åŠ¨ä¸»æœº"
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr "无法登录到XenAPI(Dom0ç£ç›˜æ˜¯ç©ºä¹ˆï¼Ÿ)"
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr "得到异常:%s"
@@ -10504,74 +10841,74 @@ msgstr ""
"网络 %(bridge)s 的 PIF %(pif_rec['uuid'])s 有VLAN id %(pif_vlan)d。期待的数目是 "
"%(vlan_num)d"
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
#, fuzzy
msgid "Created VM"
msgstr "_create: %s"
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
#, fuzzy
msgid "VM already halted, skipping shutdown..."
msgstr "虚拟机 %(instance_uuid)s å·²ç»ç»ˆæ­¢ï¼Œè·³è¿‡å…³é—­..."
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr "没有在实例 %s 找到VBD"
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, fuzzy, python-format
msgid "VBD %s already detached"
msgstr "å·²ç»åˆ†ç¦»"
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr "无法移除 VBD %s"
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr "æ— æ³•é”€æ¯ VBD %s"
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, fuzzy, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr "创建了VBD %(vbd_ref)s 目的是为了虚拟机 %(vm_ref)s,VDI %(vdi_ref)s"
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr "创建了VBD %(vbd_ref)s 目的是为了虚拟机 %(vm_ref)s,VDI %(vdi_ref)s"
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr "æ— æ³•é”€æ¯ VDI %s"
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
@@ -10580,305 +10917,298 @@ msgstr ""
"创建了 VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s) ä½ç½®åœ¨"
" %(sr_ref)s。"
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
#, fuzzy
msgid "SR not present and could not be introduced"
msgstr "无法找到实例"
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, fuzzy, python-format
msgid "block device info: %s"
msgstr "å—设备列表 block_device_list %s"
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr "克隆了 VDI %(vdi_ref)s 对象æ¥è‡ªVDI %(vdi_to_clone_ref)s"
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, fuzzy, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr "未找到 %(vm_ref)s 的主VDI"
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
#, fuzzy
msgid "Starting snapshot for VM"
msgstr "开始为虚拟机 %s 快照"
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr "åªèƒ½åœ¨extç±»åž‹çš„ç¼ºçœæœ¬åœ°å­˜å‚¨åº“支æŒå¿«é€Ÿå…‹éš†ã€‚这个系统的存储库类型为 %(sr_type)s。忽略此 cow 标记。"
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, fuzzy, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr "xapi 'download_vhd' 返回“%(vdi_type)sâ€ç±»åž‹çš„VDI,其UUID为 “%(vdi_uuid)sâ€"
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, fuzzy, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr "请求 xapi èŽ·å– vhd é•œåƒ %(image)s"
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
-#: nova/virt/xenapi/vm_utils.py:1203
-#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr "image_size_bytes=%(size_bytes)d,allowed_size_bytes=%(allowed_size_bytes)d"
-
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
+#: nova/virt/xenapi/vm_utils.py:1206
+#, fuzzy, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr "镜åƒå¤§å° %(size_bytes)d 超过instance_type所å…许的å°å¤§ %(allowed_size_bytes)d"
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, fuzzy, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr "获å–é•œåƒ %(image)s"
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, fuzzy, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr "é•œåƒ %(image)s 的大å°ï¼š%(virtual_size)d"
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr "内核/内存盘镜åƒå¤ªå¤§ï¼š%(vdi_size)d 字节,最大 %(max_size)d 字节"
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr "å°†VDI %s å¤åˆ¶åˆ°dom0çš„/boot/guest下"
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr "内核/内存盘 VDI %s 已销æ¯"
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
#, fuzzy
msgid "Failed to fetch glance image"
msgstr "实例 %s:获å–Glance镜åƒå¤±è´¥"
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr "检测到 %(image_type_str)s æ ¼å¼ï¼Œç›®æ ‡æ˜¯é•œåƒ %(image_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr "为PV内核查询vdi %s"
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr "æœªçŸ¥çš„é•œåƒæ ¼å¼ %(disk_image_type)s"
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr "VDI %s ä¾ç„¶å¯ç”¨"
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr "釿–°æ‰«æå­˜å‚¨åº“ %s"
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr "标记sr_matching_filter '%s' 没有éµå¾ªæ ¼å¼è¦æ±‚"
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr "XenAPI无法找到安装客户实例的存储库。请检查你的é…置或者é…置标记'sr_matching_filter'"
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr "无法找到content-type ISO的存储库"
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr "ISO:正在查看存储库 %(sr_rec)s"
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr "ISO:éžiso内容"
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr "ISO:iso content_type,没有 'i18n-key' 键"
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr "ISO:iso content_type,i18n-keyçš„å€¼ä¸æ˜¯ 'local-storage-iso'"
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr "ISO: å­˜å‚¨åº“ç¬¦åˆæ ‡å‡†"
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr "ISO: ISO, æ­£åœ¨æŸ¥çœ‹æ˜¯å¦æ˜¯æœ¬åœ°çš„主机"
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr "ISO: PBD %(pbd_ref)s 消失了"
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr "ISO: PBD匹é…, æƒ³è¦ %(pbd_rec)s, ç›®å‰æœ‰ %(host)s"
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr "ISOï¼šå«æœ‰æœ¬åœ°PBD的存储库"
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr "æ— æ³•ä¸ºå«æœåŠ¡å™¨è¯¦ç»†ä¿¡æ¯çš„虚拟机 %(vm_uuid)s 获å–RRD XML:%(server)s。"
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr "无法获å–åŒ…å«æœåŠ¡å™¨è¯¦ç»†æƒ…å†µçš„RRD XML更新:%(server)s。"
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr "æ¥è‡ªXenserver无效的统计数æ®ï¼š%s"
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, fuzzy, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr "VHD %(vdi_uuid)s 有父 %(parent_ref)s"
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr "父标识 %(parent_uuid)s 和原先的父标识 %(original_parent_uuid)s ä¸åŒ¹é…,正在等待åˆå¹¶..."
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr "VHD coalesce å°†è¦è¶…过(%(max_attempts)d),放弃中..."
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr "等待设备 %s 创建超时"
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr "æ’å…¥VBD %s... "
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr "æ’å…¥VBD %s 完æˆã€‚"
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr "VBD %(vbd_ref)s 作为 %(orig_dev)s æ’å…¥"
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr "VBD %(vbd_ref)s æ’å…¥é”™è¯¯çš„è®¾å¤‡ï¼Œé‡æ–°æ˜ å°„为 %(dev)s"
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr "正在销æ¯VDI为 %s çš„ VBD "
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr "å·²ç»é”€æ¯VDI为 %s çš„ VBD"
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr "对 %s è¿è¡Œpygrub"
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr "找到Xen内核 %s"
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr "没有找到Xen内核。正在å¯åЍHVM。"
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10886,62 +11216,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr "分区:"
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr " %(num)s: %(ptype)s %(size)d sectors"
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr "将分区表 %(primary_first)d %(primary_last)d 写入到 %(dev_path)s..."
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr "完æˆå†™å…¥åˆ†åŒºè¡¨ %s 。"
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr "直接æ“ä½œæŽ¥å£æ–‡ä»¶"
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr "挂载文件系统失败(期望的是éžLinux实例):%s"
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, fuzzy, python-format
msgid "Updating progress to %(progress)d"
msgstr "将实例 '%(instance_uuid)s' 的进度更新到 %(progress)d"
@@ -10951,223 +11281,223 @@ msgstr "将实例 '%(instance_uuid)s' 的进度更新到 %(progress)d"
msgid "Importing image upload handler: %s"
msgstr "正在删除基文件:%s"
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
#, fuzzy
msgid "Starting instance"
msgstr "正在å¯åŠ¨è™šæ‹Ÿæœº"
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr "从 dom0 中移除内核/内存盘文件"
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, fuzzy, python-format
msgid "Block device information present: %s"
msgstr "block_device_mapping %s"
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
#, fuzzy
msgid "Failed to spawn, rolling back"
msgstr "在数æ®åº“æ›´æ–°å·å¤±è´¥"
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
#, fuzzy
msgid "Auto configuring disk, attempting to resize partition..."
msgstr "正在自动é…置实例 %(instance_uuid)s çš„ç£ç›˜ï¼Œå°è¯•调整分区大å°..."
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
#, fuzzy
msgid "Starting VM"
msgstr "é‡å¯xvp"
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr "%(hypervisor)s/%(os)s/%(architecture)s 最新的agent build 是 %(version)s 版本"
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr "没有找到 %(hypervisor)s/%(os)s/%(architecture)s 的代ç†åˆ›å»º"
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr "实例代ç†ç‰ˆæœ¬ï¼š%s"
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr "设置VCPU æƒé‡"
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, fuzzy, python-format
msgid "Could not find VM with name %s"
msgstr "找ä¸åˆ°VDI ref"
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
#, fuzzy
msgid "Finished snapshot and upload for VM"
msgstr "快照完毕并为虚拟机 %s 上传"
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr "将 vhd 转移到新主机失败"
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "釿–°å¯åŠ¨å®žä¾‹å¤±è´¥"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr "将 VDI %(vdi_uuid)s 由 %(old_gb)dGB 调大到 %(new_gb)dGB"
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
#, fuzzy
msgid "Resize complete"
msgstr "调整实例 %s 的大å°å®Œæ¯•"
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
#, fuzzy
msgid "Unable to find root VBD/VDI for VM"
msgstr "无法为VDI %s 找到VBD"
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
#, fuzzy
msgid "Destroying VDIs"
msgstr "é‡å¯xvp"
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
#, fuzzy
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr "实例 %(instance_uuid)s 使用RAW或者VHD,跳过内核和内存盘的删除"
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr "å®žä¾‹æ‹¥æœ‰å†…æ ¸æˆ–è€…å†…å­˜ç›˜ï¼Œä½†ä¸æ˜¯äºŒè€…凿œ‰"
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr "内核/内存盘文件移除了"
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
#, fuzzy
msgid "Destroying VM"
msgstr "é‡å¯xvp"
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr "虚拟机ä¸å­˜åœ¨ï¼Œè·³è¿‡é”€æ¯..."
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr "å®žä¾‹å·²å¤„äºŽæ•‘æ´æ¨¡å¼ï¼š%s"
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
#, fuzzy
msgid "VM is not present, skipping soft delete..."
msgstr "虚拟机ä¸å­˜åœ¨ï¼Œè·³è¿‡é”€æ¯..."
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
#, fuzzy
msgid "Automatically hard rebooting"
msgstr "自动冷é‡å¯ %d"
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
#, fuzzy
msgid "Injecting network info to xenstore"
msgstr "为虚拟机注入网络信æ¯åˆ°xs:|%s|"
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
#, fuzzy
msgid "Creating vifs"
msgstr "正在创建镜åƒ"
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, fuzzy, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr "正在为虚拟机 %(vm_ref)s,网络 %(network_ref)s 创建VIF。"
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, fuzzy, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr "正在为虚拟机 %(vm_ref)s,网络 %(network_ref)s 创建VIF。"
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
#, fuzzy
msgid "Injecting hostname to xenstore"
msgstr "为虚拟机注入hostname到xs:|%s|"
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
#, fuzzy
msgid "No suitable network for migrate"
msgstr "错误的网络格å¼"
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
#, fuzzy
msgid "Migrate Send failed"
msgstr "创建失败"
@@ -11250,7 +11580,7 @@ msgstr "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr "实例 %(instance_id)s 没有找到。"
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -11258,7 +11588,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, fuzzy, python-format
msgid "upload_vhd failed: %r"
msgstr "未知的基文件:%s"
@@ -11313,46 +11643,8 @@ msgstr "状æ€å¿…é¡»å¯ç”¨"
msgid "status must be 'available'"
msgstr "状æ€å¿…é¡»å¯ç”¨"
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr "引起异常 EC2APIError: %s"
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr "åˆ›å»ºå‚æ•°å¿…须是正整数"
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
-#~ msgstr "å°† VDI %(cow_uuid)s ç”± %(old_gb)dGB è°ƒå°åˆ° %(new_gb)dGB"
-
diff --git a/nova/locale/zh_HK/LC_MESSAGES/nova.po b/nova/locale/zh_HK/LC_MESSAGES/nova.po
new file mode 100644
index 000000000..0f5843845
--- /dev/null
+++ b/nova/locale/zh_HK/LC_MESSAGES/nova.po
@@ -0,0 +1,11299 @@
+# Chinese (Hong Kong SAR China) translations for nova.
+# Copyright (C) 2013 ORGANIZATION
+# This file is distributed under the same license as the nova project.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Nova\n"
+"Report-Msgid-Bugs-To: https://bugs.launchpad.net/nova\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
+"PO-Revision-Date: 2013-05-28 17:08+0000\n"
+"Last-Translator: openstackjenkins <jenkins@openstack.org>\n"
+"Language-Team: Chinese (Hong Kong) "
+"(http://www.transifex.com/projects/p/openstack/language/zh_HK/)\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 0.9.6\n"
+
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
+#, python-format
+msgid "block_device_list %s"
+msgstr ""
+
+#: nova/context.py:63
+#, python-format
+msgid "Arguments dropped when creating context: %s"
+msgstr ""
+
+#: nova/context.py:108
+#, python-format
+msgid "read_deleted can only be one of 'no', 'yes' or 'only', not %r"
+msgstr ""
+
+#: nova/crypto.py:55
+msgid "Filename of root CA"
+msgstr ""
+
+#: nova/crypto.py:58
+msgid "Filename of private key"
+msgstr ""
+
+#: nova/crypto.py:61
+msgid "Filename of root Certificate Revocation List"
+msgstr ""
+
+#: nova/crypto.py:64
+msgid "Where we keep our keys"
+msgstr ""
+
+#: nova/crypto.py:67
+msgid "Where we keep our root CA"
+msgstr ""
+
+#: nova/crypto.py:70
+msgid "Should we use a CA for each project?"
+msgstr ""
+
+#: nova/crypto.py:74
+#, python-format
+msgid "Subject for certificate for users, %s for project, user, timestamp"
+msgstr ""
+
+#: nova/crypto.py:79
+#, python-format
+msgid "Subject for certificate for projects, %s for project, timestamp"
+msgstr ""
+
+#: nova/crypto.py:210
+msgid "Unable to find the key"
+msgstr ""
+
+#: nova/crypto.py:393
+msgid "Failed to write inbound.csr"
+msgstr ""
+
+#: nova/crypto.py:395
+#, python-format
+msgid "Flags path: %s"
+msgstr ""
+
+#: nova/exception.py:112
+msgid "An unknown exception occurred."
+msgstr ""
+
+#: nova/exception.py:133 nova/openstack/common/rpc/common.py:87
+msgid "Exception in string format operation"
+msgstr ""
+
+#: nova/exception.py:153
+msgid "Unknown"
+msgstr ""
+
+#: nova/exception.py:163
+#, python-format
+msgid "Failed to encrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:167
+#, python-format
+msgid "Failed to decrypt text: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:171
+msgid "Virtual Interface creation failed"
+msgstr ""
+
+#: nova/exception.py:175
+msgid "5 attempts to create virtual interfacewith unique mac address failed"
+msgstr ""
+
+#: nova/exception.py:180
+#, python-format
+msgid "Connection to glance host %(host)s:%(port)s failed: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:185
+msgid "Not authorized."
+msgstr ""
+
+#: nova/exception.py:190
+msgid "User does not have admin privileges"
+msgstr ""
+
+#: nova/exception.py:194
+#, python-format
+msgid "Policy doesn't allow %(action)s to be performed."
+msgstr ""
+
+#: nova/exception.py:198
+#, python-format
+msgid "Image %(image_id)s is not active."
+msgstr ""
+
+#: nova/exception.py:202
+#, python-format
+msgid "Not authorized for image %(image_id)s."
+msgstr ""
+
+#: nova/exception.py:206
+msgid "Unacceptable parameters."
+msgstr ""
+
+#: nova/exception.py:211
+msgid "Block Device Mapping is Invalid."
+msgstr ""
+
+#: nova/exception.py:215
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get snapshot %(id)s."
+msgstr ""
+
+#: nova/exception.py:220
+#, python-format
+msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
+msgstr ""
+
+#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
+#, python-format
+msgid "Volume %(volume_id)s is not attached to anything"
+msgstr ""
+
+#: nova/exception.py:240
+#, python-format
+msgid ""
+"Volume %(volume_id)s did not finish being created even after we waited "
+"%(seconds)s seconds or %(attempts)s attempts."
+msgstr ""
+
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
+msgid "Keypair data is invalid"
+msgstr ""
+
+#: nova/exception.py:250
+msgid "The request is invalid."
+msgstr ""
+
+#: nova/exception.py:254
+msgid "Invalid input received"
+msgstr ""
+
+#: nova/exception.py:258
+msgid "Invalid volume"
+msgstr ""
+
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
+#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
+msgid "Invalid metadata"
+msgstr ""
+
+#: nova/exception.py:266
+msgid "Invalid metadata size"
+msgstr ""
+
+#: nova/exception.py:270
+#, python-format
+msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
+msgstr ""
+
+#: nova/exception.py:274
+#, python-format
+msgid "Invalid IP protocol %(protocol)s."
+msgstr ""
+
+#: nova/exception.py:278
+#, python-format
+msgid "Invalid content type %(content_type)s."
+msgstr ""
+
+#: nova/exception.py:282
+#, python-format
+msgid "Invalid cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
+msgid "Invalid Parameter: Unicode is not supported by the current database."
+msgstr ""
+
+#: nova/exception.py:293
+#, python-format
+msgid "%(err)s"
+msgstr ""
+
+#: nova/exception.py:297
+#, python-format
+msgid ""
+"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
+" %(reason)s."
+msgstr ""
+
+#: nova/exception.py:302
+#, python-format
+msgid "Group not valid. Reason: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
+msgid "Sort key supplied was not valid."
+msgstr ""
+
+#: nova/exception.py:310
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
+" the instance is in this state."
+msgstr ""
+
+#: nova/exception.py:315
+#, python-format
+msgid "Instance %(instance_id)s is not running."
+msgstr ""
+
+#: nova/exception.py:319
+#, python-format
+msgid "Instance %(instance_id)s is not in rescue mode"
+msgstr ""
+
+#: nova/exception.py:323
+#, python-format
+msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:327
+#, python-format
+msgid "Instance %(instance_id)s is not ready"
+msgstr ""
+
+#: nova/exception.py:331
+msgid "Failed to suspend instance"
+msgstr ""
+
+#: nova/exception.py:335
+#, python-format
+msgid "Failed to resume instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:339
+#, python-format
+msgid "Failed to power on instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:343
+#, python-format
+msgid "Failed to power off instance: %(reason)s."
+msgstr ""
+
+#: nova/exception.py:347
+msgid "Failed to reboot instance"
+msgstr ""
+
+#: nova/exception.py:351
+msgid "Failed to terminate instance"
+msgstr ""
+
+#: nova/exception.py:355
+msgid "Failed to deploy instance"
+msgstr ""
+
+#: nova/exception.py:359
+msgid "Service is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:363
+msgid "Insufficient compute resources."
+msgstr ""
+
+#: nova/exception.py:367
+#, python-format
+msgid "Compute service of %(host)s is unavailable at this time."
+msgstr ""
+
+#: nova/exception.py:371
+#, python-format
+msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
+msgstr ""
+
+#: nova/exception.py:376
+msgid "The supplied hypervisor type of is invalid."
+msgstr ""
+
+#: nova/exception.py:380
+msgid "The instance requires a newer hypervisor version than has been provided."
+msgstr ""
+
+#: nova/exception.py:385
+#, python-format
+msgid ""
+"The supplied disk path (%(path)s) already exists, it is expected not to "
+"exist."
+msgstr ""
+
+#: nova/exception.py:390
+#, python-format
+msgid "The supplied device path (%(path)s) is invalid."
+msgstr ""
+
+#: nova/exception.py:394
+#, python-format
+msgid "The supplied device path (%(path)s) is in use."
+msgstr ""
+
+#: nova/exception.py:399
+#, python-format
+msgid "The supplied device (%(device)s) is busy."
+msgstr ""
+
+#: nova/exception.py:403
+msgid "Unacceptable CPU info"
+msgstr ""
+
+#: nova/exception.py:407
+#, python-format
+msgid "%(address)s is not a valid IP v4/6 address."
+msgstr ""
+
+#: nova/exception.py:411
+#, python-format
+msgid ""
+"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
+"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
+msgstr ""
+
+#: nova/exception.py:417
+#, python-format
+msgid ""
+"vSwitch which contains the port group %(bridge)s is not associated with "
+"the desired physical adapter. Expected vSwitch is %(expected)s, but the "
+"one associated is %(actual)s."
+msgstr ""
+
+#: nova/exception.py:424
+#, python-format
+msgid "Disk format %(disk_format)s is not acceptable"
+msgstr ""
+
+#: nova/exception.py:428
+#, python-format
+msgid "Image %(image_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:432
+#, python-format
+msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:436
+#, python-format
+msgid "Ec2 id %(ec2_id)s is unacceptable."
+msgstr ""
+
+#: nova/exception.py:440
+#, python-format
+msgid "Expected a uuid but received %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:444
+#, python-format
+msgid "Invalid ID received %(id)s."
+msgstr ""
+
+#: nova/exception.py:448
+msgid "Constraint not met."
+msgstr ""
+
+#: nova/exception.py:453
+msgid "Resource could not be found."
+msgstr ""
+
+#: nova/exception.py:458
+#, python-format
+msgid "No agent-build associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:462
+#, python-format
+msgid "Volume %(volume_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:466
+#, python-format
+msgid "Snapshot %(snapshot_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:470
+#, python-format
+msgid "No target id found for volume %(volume_id)s."
+msgstr ""
+
+#: nova/exception.py:474
+#, python-format
+msgid "No disk at %(location)s"
+msgstr ""
+
+#: nova/exception.py:478
+#, python-format
+msgid "Could not find a handler for %(driver_type)s volume."
+msgstr ""
+
+#: nova/exception.py:482
+#, python-format
+msgid "Invalid image href %(image_href)s."
+msgstr ""
+
+#: nova/exception.py:486
+#, python-format
+msgid "Image %(image_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:490
+#, python-format
+msgid ""
+"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
+" dynamically when they are listed for the first time. Have you listed "
+"image ids since adding this image?"
+msgstr ""
+
+#: nova/exception.py:497
+#, python-format
+msgid "Project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:501
+msgid "Cannot find SR to read/write VDI."
+msgstr ""
+
+#: nova/exception.py:505
+#, python-format
+msgid "Network %(network_id)s is duplicated."
+msgstr ""
+
+#: nova/exception.py:509
+#, python-format
+msgid "Network %(network_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:513
+#, python-format
+msgid "%(req)s is required to create a network."
+msgstr ""
+
+#: nova/exception.py:517
+#, python-format
+msgid "Network %(network_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:521
+#, python-format
+msgid "Port id %(port_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:525
+#, python-format
+msgid "Network could not be found for bridge %(bridge)s"
+msgstr ""
+
+#: nova/exception.py:529
+#, python-format
+msgid "Network could not be found for uuid %(uuid)s"
+msgstr ""
+
+#: nova/exception.py:533
+#, python-format
+msgid "Network could not be found with cidr %(cidr)s."
+msgstr ""
+
+#: nova/exception.py:537
+#, python-format
+msgid "Network could not be found for instance %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:541
+msgid "No networks defined."
+msgstr ""
+
+#: nova/exception.py:545
+#, python-format
+msgid ""
+"Either Network uuid %(network_uuid)s is not present or is not assigned to"
+" the project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:550
+msgid "Could not find the datastore reference(s) which the VM uses."
+msgstr ""
+
+#: nova/exception.py:554
+#, python-format
+msgid "Port %(port_id)s is still in use."
+msgstr ""
+
+#: nova/exception.py:558
+#, python-format
+msgid "Port %(port_id)s not usable for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:562
+#, python-format
+msgid "No free port available for instance %(instance)s."
+msgstr ""
+
+#: nova/exception.py:566
+#, python-format
+msgid "No fixed IP associated with id %(id)s."
+msgstr ""
+
+#: nova/exception.py:570
+#, python-format
+msgid "Fixed ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:574
+#, python-format
+msgid "Instance %(instance_uuid)s has zero fixed ips."
+msgstr ""
+
+#: nova/exception.py:578
+#, python-format
+msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
+msgstr ""
+
+#: nova/exception.py:583
+#, python-format
+msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
+msgstr ""
+
+#: nova/exception.py:587
+#, python-format
+msgid ""
+"Fixed IP address (%(address)s) does not exist in network "
+"(%(network_uuid)s)."
+msgstr ""
+
+#: nova/exception.py:592
+#, python-format
+msgid ""
+"Fixed IP address %(address)s is already in use on instance "
+"%(instance_uuid)s."
+msgstr ""
+
+#: nova/exception.py:597
+#, python-format
+msgid "More than one instance is associated with fixed ip address '%(address)s'."
+msgstr ""
+
+#: nova/exception.py:602
+#, python-format
+msgid "Fixed IP address %(address)s is invalid."
+msgstr ""
+
+#: nova/exception.py:606
+msgid "Zero fixed ips available."
+msgstr ""
+
+#: nova/exception.py:610
+msgid "Zero fixed ips could be found."
+msgstr ""
+
+#: nova/exception.py:619
+#, python-format
+msgid "Floating ip %(address)s already exists."
+msgstr ""
+
+#: nova/exception.py:623
+#, python-format
+msgid "Floating ip not found for id %(id)s."
+msgstr ""
+
+#: nova/exception.py:627
+#, python-format
+msgid "The DNS entry %(name)s already exists in domain %(domain)s."
+msgstr ""
+
+#: nova/exception.py:631
+#, python-format
+msgid "Floating ip not found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:635
+#, python-format
+msgid "Floating ip not found for host %(host)s."
+msgstr ""
+
+#: nova/exception.py:639
+#, python-format
+msgid "Multiple floating ips are found for address %(address)s."
+msgstr ""
+
+#: nova/exception.py:643
+msgid "Floating ip pool not found."
+msgstr ""
+
+#: nova/exception.py:648
+msgid "Zero floating ips available."
+msgstr ""
+
+#: nova/exception.py:653
+#, python-format
+msgid "Floating ip %(address)s is associated."
+msgstr ""
+
+#: nova/exception.py:657
+#, python-format
+msgid "Floating ip %(address)s is not associated."
+msgstr ""
+
+#: nova/exception.py:661
+msgid "Zero floating ips exist."
+msgstr ""
+
+#: nova/exception.py:665
+#, python-format
+msgid "Interface %(interface)s not found."
+msgstr ""
+
+#: nova/exception.py:669
+msgid "Cannot disassociate auto assigined floating ip"
+msgstr ""
+
+#: nova/exception.py:673
+#, python-format
+msgid "Keypair %(name)s not found for user %(user_id)s"
+msgstr ""
+
+#: nova/exception.py:677
+#, python-format
+msgid "Certificate %(certificate_id)s not found."
+msgstr ""
+
+#: nova/exception.py:681
+#, python-format
+msgid "Service %(service_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:685
+#, python-format
+msgid "Host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:689
+#, python-format
+msgid "Compute host %(host)s could not be found."
+msgstr ""
+
+#: nova/exception.py:693
+#, python-format
+msgid "Could not find binary %(binary)s on host %(host)s."
+msgstr ""
+
+#: nova/exception.py:697
+#, python-format
+msgid "Invalid reservation expiration %(expire)s."
+msgstr ""
+
+#: nova/exception.py:701
+#, python-format
+msgid ""
+"Change would make usage less than 0 for the following resources: "
+"%(unders)s"
+msgstr ""
+
+#: nova/exception.py:706
+msgid "Quota could not be found"
+msgstr ""
+
+#: nova/exception.py:710
+#, python-format
+msgid "Unknown quota resources %(unknown)s."
+msgstr ""
+
+#: nova/exception.py:714
+#, python-format
+msgid "Quota for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:718
+#, python-format
+msgid "Quota class %(class_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:722
+#, python-format
+msgid "Quota usage for project %(project_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:726
+#, python-format
+msgid "Quota reservation %(uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:730
+#, python-format
+msgid "Quota exceeded for resources: %(overs)s"
+msgstr ""
+
+#: nova/exception.py:734
+#, python-format
+msgid "Security group %(security_group_id)s not found."
+msgstr ""
+
+#: nova/exception.py:738
+#, python-format
+msgid "Security group %(security_group_id)s not found for project %(project_id)s."
+msgstr ""
+
+#: nova/exception.py:743
+#, python-format
+msgid "Security group with rule %(rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:747
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is already associated with the "
+"instance %(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:752
+#, python-format
+msgid ""
+"Security group %(security_group_id)s is not associated with the instance "
+"%(instance_id)s"
+msgstr ""
+
+#: nova/exception.py:757
+#, python-format
+msgid "Security group default rule (%rule_id)s not found."
+msgstr ""
+
+#: nova/exception.py:761
+msgid ""
+"Network requires port_security_enabled and subnet associated in order to "
+"apply security groups."
+msgstr ""
+
+#: nova/exception.py:766
+msgid "No Unique Match Found."
+msgstr ""
+
+#: nova/exception.py:771
+#, python-format
+msgid "Migration %(migration_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:775
+#, python-format
+msgid "Migration not found for instance %(instance_id)s with status %(status)s."
+msgstr ""
+
+#: nova/exception.py:780
+#, python-format
+msgid "Console pool %(pool_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:784
+#, python-format
+msgid ""
+"Console pool of type %(console_type)s for compute host %(compute_host)s "
+"on proxy host %(host)s not found."
+msgstr ""
+
+#: nova/exception.py:790
+#, python-format
+msgid "Console %(console_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:794
+#, python-format
+msgid "Console for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:798
+#, python-format
+msgid ""
+"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
+"found."
+msgstr ""
+
+#: nova/exception.py:803
+#, python-format
+msgid "Invalid console type %(console_type)s"
+msgstr ""
+
+#: nova/exception.py:807
+#, python-format
+msgid "Instance type %(instance_type_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:811
+#, python-format
+msgid "Instance type with name %(instance_type_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:816
+#, python-format
+msgid "Flavor %(flavor_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:820
+#, python-format
+msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:825
+#, python-format
+msgid "Cell %(cell_name)s doesn't exist."
+msgstr ""
+
+#: nova/exception.py:829
+#, python-format
+msgid "Inconsistency in cell routing: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:833
+#, python-format
+msgid "Service API method not found: %(detail)s"
+msgstr ""
+
+#: nova/exception.py:837
+msgid "Timeout waiting for response from cell"
+msgstr ""
+
+#: nova/exception.py:841
+#, python-format
+msgid "Cell message has reached maximum hop count: %(hop_count)s"
+msgstr ""
+
+#: nova/exception.py:845
+msgid "No cells available matching scheduling criteria."
+msgstr ""
+
+#: nova/exception.py:849
+#, python-format
+msgid "Exception received during cell processing: %(exc_name)s."
+msgstr ""
+
+#: nova/exception.py:853
+#, python-format
+msgid "Cell is not known for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/exception.py:857
+#, python-format
+msgid "Scheduler Host Filter %(filter_name)s could not be found."
+msgstr ""
+
+#: nova/exception.py:861
+#, python-format
+msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:866
+#, python-format
+msgid ""
+"Instance %(instance_uuid)s has no system metadata with key "
+"%(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:871
+#, python-format
+msgid ""
+"Instance Type %(instance_type_id)s has no extra specs with key "
+"%(extra_specs_key)s."
+msgstr ""
+
+#: nova/exception.py:876
+#, python-format
+msgid "File %(file_path)s could not be found."
+msgstr ""
+
+#: nova/exception.py:880
+msgid "Zero files could be found."
+msgstr ""
+
+#: nova/exception.py:884
+#, python-format
+msgid "Virtual switch associated with the network adapter %(adapter)s not found."
+msgstr ""
+
+#: nova/exception.py:889
+#, python-format
+msgid "Network adapter %(adapter)s could not be found."
+msgstr ""
+
+#: nova/exception.py:893
+#, python-format
+msgid "Class %(class_name)s could not be found: %(exception)s"
+msgstr ""
+
+#: nova/exception.py:897
+msgid "Action not allowed."
+msgstr ""
+
+#: nova/exception.py:901
+msgid "Rotation is not allowed for snapshots"
+msgstr ""
+
+#: nova/exception.py:905
+msgid "Rotation param is required for backup image_type"
+msgstr ""
+
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
+#, python-format
+msgid "Key pair '%(key_name)s' already exists."
+msgstr ""
+
+#: nova/exception.py:913
+#, python-format
+msgid "Instance %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:917
+#, python-format
+msgid "Instance Type with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:921
+#, python-format
+msgid "Instance Type with ID %(flavor_id)s already exists."
+msgstr ""
+
+#: nova/exception.py:925
+#, python-format
+msgid ""
+"Flavor access alreay exists for flavor %(flavor_id)s and project "
+"%(project_id)s combination."
+msgstr ""
+
+#: nova/exception.py:930
+#, python-format
+msgid "%(path)s is not on shared storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:934
+#, python-format
+msgid "%(path)s is not on local storage: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:938
+msgid "Migration error"
+msgstr ""
+
+#: nova/exception.py:942
+msgid "Migration pre-check error"
+msgstr ""
+
+#: nova/exception.py:946
+#, python-format
+msgid "Malformed message body: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:952
+#, python-format
+msgid "Could not find config at %(path)s"
+msgstr ""
+
+#: nova/exception.py:956
+#, python-format
+msgid "Could not load paste app '%(name)s' from %(path)s"
+msgstr ""
+
+#: nova/exception.py:960
+msgid "When resizing, instances must change flavor!"
+msgstr ""
+
+#: nova/exception.py:964
+#, python-format
+msgid "Resize error: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:968
+msgid "Instance type's memory is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:972
+msgid "Instance type's disk is too small for requested image."
+msgstr ""
+
+#: nova/exception.py:976
+#, python-format
+msgid "Insufficient free memory on compute node to start %(uuid)s."
+msgstr ""
+
+#: nova/exception.py:980
+msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
+msgstr ""
+
+#: nova/exception.py:984
+#, python-format
+msgid "No valid host was found. %(reason)s"
+msgstr ""
+
+#: nova/exception.py:988
+msgid "Quota exceeded"
+msgstr ""
+
+#: nova/exception.py:995
+#, python-format
+msgid ""
+"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
+"%(used)d of %(allowed)d %(resource)s"
+msgstr ""
+
+#: nova/exception.py:1000
+msgid "Maximum number of floating ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1004
+msgid "Maximum number of fixed ips exceeded"
+msgstr ""
+
+#: nova/exception.py:1008
+#, python-format
+msgid "Maximum number of metadata items exceeds %(allowed)d"
+msgstr ""
+
+#: nova/exception.py:1012
+msgid "Personality file limit exceeded"
+msgstr ""
+
+#: nova/exception.py:1016
+msgid "Personality file path too long"
+msgstr ""
+
+#: nova/exception.py:1020
+msgid "Personality file content too long"
+msgstr ""
+
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
+msgid "Maximum number of key pairs exceeded"
+msgstr ""
+
+#: nova/exception.py:1028
+msgid "Maximum number of security groups or rules exceeded"
+msgstr ""
+
+#: nova/exception.py:1032
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
+"%(reason)s."
+msgstr ""
+
+#: nova/exception.py:1037
+#, python-format
+msgid "Aggregate %(aggregate_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1041
+#, python-format
+msgid "Aggregate %(aggregate_name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1045
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1049
+#, python-format
+msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1054
+#, python-format
+msgid "Aggregate %(aggregate_id)s already has host %(host)s."
+msgstr ""
+
+#: nova/exception.py:1058
+msgid "Unable to create instance type"
+msgstr ""
+
+#: nova/exception.py:1062
+#, python-format
+msgid "Failed to set admin password on %(instance)s because %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1068
+#, python-format
+msgid "Detected existing vlan with id %(vlan)d"
+msgstr ""
+
+#: nova/exception.py:1072
+msgid "There was a conflict when trying to complete your request."
+msgstr ""
+
+#: nova/exception.py:1077
+#, python-format
+msgid "Instance %(instance_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1081
+#, python-format
+msgid "Info cache for instance %(instance_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1086
+#, python-format
+msgid "Node %(node_id)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1090
+#, python-format
+msgid "Node with UUID %(node_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1094
+#, python-format
+msgid "Marker %(marker)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1098
+#, python-format
+msgid "Invalid id: %(val)s (expecting \"i-...\")."
+msgstr ""
+
+#: nova/exception.py:1102
+#, python-format
+msgid "Could not fetch image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1106
+#, python-format
+msgid "Could not upload image %(image_id)s"
+msgstr ""
+
+#: nova/exception.py:1110
+#, python-format
+msgid "Task %(task_name)s is already running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1114
+#, python-format
+msgid "Task %(task_name)s is not running on host %(host)s"
+msgstr ""
+
+#: nova/exception.py:1118
+#, python-format
+msgid "Instance %(instance_uuid)s is locked"
+msgstr ""
+
+#: nova/exception.py:1122
+#, python-format
+msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
+msgstr ""
+
+#: nova/exception.py:1127
+#, python-format
+msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
+msgstr ""
+
+#: nova/exception.py:1132
+#, python-format
+msgid "Failed to attach network adapter device to %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1136
+#, python-format
+msgid "Failed to detach network adapter device from %(instance)s"
+msgstr ""
+
+#: nova/exception.py:1140
+#, python-format
+msgid ""
+"User data too large. User data must be no larger than %(maxsize)s bytes "
+"once base64 encoded. Your data is %(length)d bytes"
+msgstr ""
+
+#: nova/exception.py:1146
+msgid "User data needs to be valid base 64."
+msgstr ""
+
+#: nova/exception.py:1150
+#, python-format
+msgid ""
+"unexpected task state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1155
+#, python-format
+msgid ""
+"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
+"found"
+msgstr ""
+
+#: nova/exception.py:1160
+#, python-format
+msgid "Event %(event)s not found for action id %(action_id)s"
+msgstr ""
+
+#: nova/exception.py:1164
+#, python-format
+msgid ""
+"unexpected VM state: expecting %(expected)s but the actual state is "
+"%(actual)s"
+msgstr ""
+
+#: nova/exception.py:1169
+#, python-format
+msgid "The CA file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1173
+#, python-format
+msgid "The CRL file for %(project)s could not be found"
+msgstr ""
+
+#: nova/exception.py:1177
+msgid "Instance recreate is not implemented by this virt driver."
+msgstr ""
+
+#: nova/exception.py:1181
+#, python-format
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
+msgstr ""
+
+#: nova/exception.py:1186
+#, python-format
+msgid "%(binary)s attempted direct database access which is not allowed by policy"
+msgstr ""
+
+#: nova/exception.py:1191
+#, python-format
+msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
+msgstr ""
+
+#: nova/exception.py:1196
+#, python-format
+msgid ""
+"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
+"driver"
+msgstr ""
+
+#: nova/exception.py:1201
+#, python-format
+msgid "Invalid Base 64 data for file %(path)s"
+msgstr ""
+
+#: nova/exception.py:1205
+#, python-format
+msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1209
+#, python-format
+msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
+msgstr ""
+
+#: nova/exception.py:1214
+#, python-format
+msgid "Shadow table with name %(name)s already exists."
+msgstr ""
+
+#: nova/exception.py:1219
+#, python-format
+msgid "Instance rollback performed due to: %s"
+msgstr ""
+
+#: nova/exception.py:1225
+#, python-format
+msgid "Unsupported object type %(objtype)s"
+msgstr ""
+
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
+msgstr ""
+
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
+msgstr ""
+
+#: nova/exception.py:1237
+#, python-format
+msgid "Core API extensions are missing: %(missing_apis)s"
+msgstr ""
+
+#: nova/exception.py:1241
+#, python-format
+msgid "Instance group %(group_uuid)s could not be found."
+msgstr ""
+
+#: nova/exception.py:1245
+#, python-format
+msgid "Instance group %(group_uuid)s already exists."
+msgstr ""
+
+#: nova/exception.py:1249
+#, python-format
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
+msgstr ""
+
+#: nova/exception.py:1254
+#, python-format
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
+msgstr ""
+
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
+msgstr ""
+
+#: nova/hooks.py:62
+#, python-format
+msgid "Running %(name)s pre-hook: %(obj)s"
+msgstr ""
+
+#: nova/hooks.py:70
+#, python-format
+msgid "Running %(name)s post-hook: %(obj)s"
+msgstr ""
+
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
+msgstr ""
+
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
+msgstr ""
+
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
+msgstr ""
+
+#: nova/policy.py:32
+msgid "JSON file representing policy"
+msgstr ""
+
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
+msgstr ""
+
+#: nova/quota.py:972
+#, python-format
+msgid "Created reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:994
+#, python-format
+msgid "Failed to commit reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:996
+#, python-format
+msgid "Committed reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1016
+#, python-format
+msgid "Failed to roll back reservations %(reservations)s"
+msgstr ""
+
+#: nova/quota.py:1018
+#, python-format
+msgid "Rolled back reservations %(reservations)s"
+msgstr ""
+
+#: nova/service.py:152
+#, python-format
+msgid "Starting %(topic)s node (version %(version)s)"
+msgstr ""
+
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
+#, python-format
+msgid "Creating Consumer connection for Service %s"
+msgstr ""
+
+#: nova/service.py:189
+#, python-format
+msgid "Join ServiceGroup membership for this service %s"
+msgstr ""
+
+#: nova/service.py:269
+msgid "Service killed that has no database entry"
+msgstr ""
+
+#: nova/service.py:291
+#, python-format
+msgid "Temporary directory is invalid: %s"
+msgstr ""
+
+#: nova/service.py:393
+msgid "serve() can only be called once"
+msgstr ""
+
+#: nova/utils.py:143
+#, python-format
+msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
+msgstr ""
+
+#: nova/utils.py:171
+#, python-format
+msgid "debug in callback: %s"
+msgstr ""
+
+#: nova/utils.py:333
+#, python-format
+msgid "Link Local address is not found.:%s"
+msgstr ""
+
+#: nova/utils.py:336
+#, python-format
+msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
+msgstr ""
+
+#: nova/utils.py:375
+#, python-format
+msgid "Invalid backend: %s"
+msgstr ""
+
+#: nova/utils.py:436
+#, python-format
+msgid "Unknown byte multiplier: %s"
+msgstr ""
+
+#: nova/utils.py:565
+#, python-format
+msgid "Expected object of type: %s"
+msgstr ""
+
+#: nova/utils.py:594
+#, python-format
+msgid "Invalid server_string: %s"
+msgstr ""
+
+#: nova/utils.py:731
+#, python-format
+msgid "timefunc: '%(name)s' took %(total_time).2f secs"
+msgstr ""
+
+#: nova/utils.py:797
+#, python-format
+msgid "Reloading cached file %s"
+msgstr ""
+
+#: nova/utils.py:931 nova/virt/configdrive.py:177
+#, python-format
+msgid "Could not remove tmpdir: %s"
+msgstr ""
+
+#: nova/utils.py:1090
+#, python-format
+msgid "%s is not a string or unicode"
+msgstr ""
+
+#: nova/utils.py:1094
+#, python-format
+msgid "%(name)s has less than %(min_length)s characters."
+msgstr ""
+
+#: nova/utils.py:1099
+#, python-format
+msgid "%(name)s has more than %(max_length)s characters."
+msgstr ""
+
+#: nova/wsgi.py:122
+#, python-format
+msgid "%(name)s listening on %(host)s:%(port)s"
+msgstr ""
+
+#: nova/wsgi.py:137
+#, python-format
+msgid "Unable to find cert_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:141
+#, python-format
+msgid "Unable to find ca_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:145
+#, python-format
+msgid "Unable to find key_file : %s"
+msgstr ""
+
+#: nova/wsgi.py:149
+msgid ""
+"When running server in SSL mode, you must specify both a cert_file and "
+"key_file option value in your configuration file"
+msgstr ""
+
+#: nova/wsgi.py:180
+#, python-format
+msgid "Failed to start %(name)s on %(host)s:%(port)s with SSL support"
+msgstr ""
+
+#: nova/wsgi.py:207
+msgid "Stopping WSGI server."
+msgstr ""
+
+#: nova/wsgi.py:225
+msgid "WSGI server has stopped."
+msgstr ""
+
+#: nova/wsgi.py:294
+msgid "You must implement __call__"
+msgstr ""
+
+#: nova/wsgi.py:480
+#, python-format
+msgid "Loading app %(name)s from %(path)s"
+msgstr ""
+
+#: nova/api/auth.py:116
+msgid "Invalid service catalog json."
+msgstr ""
+
+#: nova/api/auth.py:139
+msgid "Sourcing roles from deprecated X-Role HTTP header"
+msgstr ""
+
+#: nova/api/sizelimit.py:53 nova/api/sizelimit.py:62 nova/api/sizelimit.py:76
+#: nova/api/metadata/password.py:62
+msgid "Request is too large."
+msgstr ""
+
+#: nova/api/validator.py:131
+#, python-format
+msgid "%(key)s with value %(value)s failed validator %(name)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:81
+#, python-format
+msgid "%(code)s: %(message)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:104
+#, python-format
+msgid "FaultWrapper: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:174
+msgid "Too many failed authentications."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:183
+#, python-format
+msgid ""
+"Access key %(access_key)s has had %(failures)d failed authentications and"
+" will be locked out for %(lock_mins)d minutes."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:202
+msgid "Signature not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:206
+msgid "Access key not provided"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:241 nova/api/ec2/__init__.py:256
+msgid "Failure communicating with keystone"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:255
+#, python-format
+msgid "Keystone failure: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:315
+msgid "Timestamp failed validation."
+msgstr ""
+
+#: nova/api/ec2/__init__.py:335
+#, python-format
+msgid "action: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:337
+#, python-format
+msgid "arg: %(key)s\t\tval: %(value)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:413
+#, python-format
+msgid "Unauthorized request for controller=%(controller)s and action=%(action)s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:487
+#, python-format
+msgid "InstanceNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:493
+#, python-format
+msgid "VolumeNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:499
+#, python-format
+msgid "SnapshotNotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:505
+#, python-format
+msgid "NotFound raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:514
+#, python-format
+msgid "KeyPairExists raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:519
+#, python-format
+msgid "InvalidKeypair raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:524
+#, python-format
+msgid "InvalidParameterValue raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:528
+#, python-format
+msgid "InvalidPortRange raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:532
+#, python-format
+msgid "NotAuthorized raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:536
+#, python-format
+msgid "InvalidRequest raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:540
+#, python-format
+msgid "QuotaError raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:544
+#, python-format
+msgid "Invalid id: bogus (expecting \"i-...\"): %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:553
+#, python-format
+msgid "Unexpected error raised: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:554
+#, python-format
+msgid "Environment: %s"
+msgstr ""
+
+#: nova/api/ec2/__init__.py:556 nova/api/metadata/handler.py:136
+#: nova/api/metadata/handler.py:187
+msgid "An unknown error has occurred. Please try your request again."
+msgstr ""
+
+#: nova/api/ec2/apirequest.py:61
+#, python-format
+msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:391
+#, python-format
+msgid "Create snapshot of volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:416
+#, python-format
+msgid "Could not find key pair(s): %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:433
+#, python-format
+msgid "Create key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
+#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
+msgid "Quota exceeded, too many key pairs."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:449
+#, python-format
+msgid "Import key %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:469
+#, python-format
+msgid "Delete key pair %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:611 nova/api/ec2/cloud.py:731
+msgid "Not enough parameters, need group_name or group_id"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:616
+#, python-format
+msgid "%s Not enough parameters to build a valid rule"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:623
+#, python-format
+msgid "Invalid IP protocol %s."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:653 nova/api/ec2/cloud.py:685
+msgid "No rule for the specified parameters."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:676
+#, python-format
+msgid "%s - This rule already exists in group"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:759
+#, python-format
+msgid "Get console output for instance %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:832
+#, python-format
+msgid "Create volume from snapshot %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:836 nova/api/openstack/compute/contrib/volumes.py:242
+#, python-format
+msgid "Create volume of %s GB"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:863
+msgid "Delete Failed"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:876
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(instance_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:887
+msgid "Attach Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:909 nova/api/openstack/compute/contrib/volumes.py:445
+#, python-format
+msgid "Detach volume %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:916
+msgid "Detach Volume Failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
+#, python-format
+msgid "attribute not supported: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1074
+#, python-format
+msgid "vol = %s\n"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1234
+msgid "Allocate address"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1238
+msgid "No more floating IPs available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1242
+#, python-format
+msgid "Release address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1247
+msgid "Unable to release IP Address."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1250
+#, python-format
+msgid "Associate address %(public_ip)s to instance %(instance_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1260
+msgid "Unable to associate IP Address, no fixed_ips."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1268
+#: nova/api/openstack/compute/contrib/floating_ips.py:248
+#, python-format
+msgid "multiple fixed_ips exist, using the first: %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1277
+msgid "Floating ip is already associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1280
+msgid "l3driver call to add floating ip failed."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1283
+msgid "Error, unable to associate floating ip."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1291
+#, python-format
+msgid "Disassociate address %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1296
+msgid "Floating ip is not associated."
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1299
+#: nova/api/openstack/compute/contrib/floating_ips.py:97
+msgid "Cannot disassociate auto assigned floating ip"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1326
+msgid "Image must be available"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1358
+msgid "Going to start terminating instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1368
+#, python-format
+msgid "Reboot instance %r"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1377
+msgid "Going to stop instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1386
+msgid "Going to start instances"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1477
+#, python-format
+msgid "De-registering image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1493
+msgid "imageLocation is required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1512
+#, python-format
+msgid "Registered image %(image_location)s with id %(image_id)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1575
+msgid "user or group not specified"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1577
+msgid "only group \"all\" is supported"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1579
+msgid "operation_type must be add or remove"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1581
+#, python-format
+msgid "Updating image %s publicity"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1594
+#, python-format
+msgid "Not allowed to modify attributes for image %s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1622
+#, python-format
+msgid ""
+"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
+"have a volume attached at root (%(root)s)"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1653
+#, python-format
+msgid "Couldn't stop instance with in %d sec"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1671
+#, python-format
+msgid "image of %(instance)s at %(now)s"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
+msgid "resource_id and tag are required"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
+msgid "Expecting a list of resources"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
+msgid "Only instances implemented"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
+msgid "Expecting a list of tagSets"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1762
+msgid "Expecting key to be set"
+msgstr ""
+
+#: nova/api/ec2/cloud.py:1835
+msgid "Invalid CIDR"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:249
+msgid "Request must include either Timestamp or Expires, but cannot contain both"
+msgstr ""
+
+#: nova/api/ec2/ec2utils.py:267
+msgid "Timestamp is invalid."
+msgstr ""
+
+#: nova/api/metadata/handler.py:108
+msgid ""
+"X-Instance-ID present in request headers. The "
+"'service_quantum_metadata_proxy' option must be enabled to process this "
+"header."
+msgstr ""
+
+#: nova/api/metadata/handler.py:134 nova/api/metadata/handler.py:141
+#, python-format
+msgid "Failed to get metadata for ip: %s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:153
+msgid "X-Instance-ID header is missing from request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:155
+msgid "Multiple X-Instance-ID headers found within request."
+msgstr ""
+
+#: nova/api/metadata/handler.py:169
+#, python-format
+msgid ""
+"X-Instance-ID-Signature: %(signature)s does not match the expected value:"
+" %(expected_signature)s for id: %(instance_id)s. Request From: "
+"%(remote_address)s"
+msgstr ""
+
+#: nova/api/metadata/handler.py:178
+msgid "Invalid proxy request signature."
+msgstr ""
+
+#: nova/api/metadata/handler.py:185 nova/api/metadata/handler.py:192
+#, python-format
+msgid "Failed to get metadata for instance id: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:79
+#, python-format
+msgid "Caught error: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:88
+#, python-format
+msgid "%(url)s returned with HTTP %(status)d"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:175
+msgid "Must specify an ExtensionManager class"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
+#, python-format
+msgid "Extended resource: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
+#, python-format
+msgid ""
+"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
+"resource"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
+#, python-format
+msgid "Extension %(ext_name)s extending resource: %(collection)s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
+#: nova/api/openstack/common.py:114
+#, python-format
+msgid ""
+"status is UNKNOWN from vm_state=%(vm_state)s task_state=%(task_state)s. "
+"Bad upgrade or db corrupted?"
+msgstr ""
+
+#: nova/api/openstack/common.py:154 nova/api/openstack/common.py:188
+msgid "limit param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:157 nova/api/openstack/common.py:192
+msgid "limit param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:182
+msgid "offset param must be an integer"
+msgstr ""
+
+#: nova/api/openstack/common.py:196
+msgid "offset param must be positive"
+msgstr ""
+
+#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
+#, python-format
+msgid "marker [%s] not found"
+msgstr ""
+
+#: nova/api/openstack/common.py:271
+#, python-format
+msgid "href %s does not contain version"
+msgstr ""
+
+#: nova/api/openstack/common.py:286
+msgid "Image metadata limit exceeded"
+msgstr ""
+
+#: nova/api/openstack/common.py:294
+msgid "Image metadata key cannot be blank"
+msgstr ""
+
+#: nova/api/openstack/common.py:297
+msgid "Image metadata key too long"
+msgstr ""
+
+#: nova/api/openstack/common.py:300
+msgid "Invalid image metadata"
+msgstr ""
+
+#: nova/api/openstack/common.py:362
+#, python-format
+msgid "Cannot '%(action)s' while instance is in %(attr)s %(state)s"
+msgstr ""
+
+#: nova/api/openstack/common.py:366
+#, python-format
+msgid "Instance is in an invalid state for '%s'"
+msgstr ""
+
+#: nova/api/openstack/common.py:446
+msgid "Rejecting snapshot request, snapshots currently disabled"
+msgstr ""
+
+#: nova/api/openstack/common.py:448
+msgid "Instance snapshots are not permitted at this time."
+msgstr ""
+
+#: nova/api/openstack/extensions.py:196
+#, python-format
+msgid "Loaded extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
+#, python-format
+msgid "Ext name: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
+#, python-format
+msgid "Ext alias: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
+#, python-format
+msgid "Ext description: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
+#, python-format
+msgid "Ext namespace: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:240
+#, python-format
+msgid "Ext updated: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
+#, python-format
+msgid "Exception loading extension: %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:256
+#, python-format
+msgid "Loading extension %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:265
+#, python-format
+msgid "Calling extension factory %s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:277
+#, python-format
+msgid "Failed to load extension %(ext_factory)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:348
+#, python-format
+msgid "Failed to load extension %(classpath)s: %(exc)s"
+msgstr ""
+
+#: nova/api/openstack/extensions.py:371
+#, python-format
+msgid "Failed to load extension %(ext_name)s:%(exc)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:208 nova/api/openstack/wsgi.py:626
+msgid "cannot understand JSON"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:631
+msgid "too many body keys"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:675
+#, python-format
+msgid "Exception handling resource: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:679
+#, python-format
+msgid "Fault thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:682
+#, python-format
+msgid "HTTP exception thrown: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:796
+msgid "Unrecognized Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:800
+msgid "No Content-Type provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:804
+msgid "Empty body provided in request"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:912
+#, python-format
+msgid "There is no such action: %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
+#: nova/api/openstack/compute/server_metadata.py:58
+#: nova/api/openstack/compute/server_metadata.py:76
+#: nova/api/openstack/compute/server_metadata.py:101
+#: nova/api/openstack/compute/server_metadata.py:126
+#: nova/api/openstack/compute/contrib/admin_actions.py:211
+#: nova/api/openstack/compute/contrib/evacuate.py:47
+msgid "Malformed request body"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:919
+#, python-format
+msgid "Action: '%(action)s', body: %(body)s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:923
+#, python-format
+msgid "Calling method %s"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:932
+msgid "Unsupported Content-Type"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
+msgstr ""
+
+#: nova/api/openstack/wsgi.py:1181
+#, python-format
+msgid "Returning %(code)s to user: %(explanation)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:270
+msgid "element is not a child"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:419
+msgid "root element selecting a list"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:742
+#, python-format
+msgid "Template tree mismatch; adding slave %(slavetag)s to master %(mastertag)s"
+msgstr ""
+
+#: nova/api/openstack/xmlutil.py:862
+msgid "subclasses must implement construct()!"
+msgstr ""
+
+#: nova/api/openstack/compute/extensions.py:39
+msgid "Initializing extension manager."
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:107
+#, python-format
+msgid "Invalid is_public filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:127
+#, python-format
+msgid "Invalid minRam filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/flavors.py:134
+#, python-format
+msgid "Invalid minDisk filter [%s]"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:36
+#: nova/api/openstack/compute/images.py:141
+#: nova/api/openstack/compute/images.py:157
+msgid "Image not found."
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:76
+msgid "Incorrect request body format"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:80
+#: nova/api/openstack/compute/server_metadata.py:80
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:85
+msgid "Request body and URI mismatch"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:83
+#: nova/api/openstack/compute/server_metadata.py:84
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:88
+msgid "Request body contains too many items"
+msgstr ""
+
+#: nova/api/openstack/compute/image_metadata.py:109
+msgid "Invalid metadata key"
+msgstr ""
+
+#: nova/api/openstack/compute/images.py:162
+msgid "You are not allowed to delete the image."
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
+msgid "Instance does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
+msgid "Instance is not a member of specified network"
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:161
+#, python-format
+msgid ""
+"Only %(value)s %(verb)s request(s) can be made to %(uri)s every "
+"%(unit_string)s."
+msgstr ""
+
+#: nova/api/openstack/compute/limits.py:288
+msgid "This request was rate-limited."
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:38
+#: nova/api/openstack/compute/server_metadata.py:122
+#: nova/api/openstack/compute/server_metadata.py:173
+msgid "Server does not exist"
+msgstr ""
+
+#: nova/api/openstack/compute/server_metadata.py:154
+#: nova/api/openstack/compute/server_metadata.py:165
+msgid "Metadata item was not found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:521
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
+msgid "Invalid changes-since value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
+msgid "Only administrators may list deleted instances"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
+#, python-format
+msgid "Flavor '%s' could not be found "
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:576
+#: nova/api/openstack/compute/servers.py:743
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
+msgid "Instance could not be found"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
+msgid "Device name cannot include spaces."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
+#, python-format
+msgid "Bad personality format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
+msgid "Bad personality format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
+#, python-format
+msgid "Personality content for %s cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
+msgid "Unknown argment : port"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
+#, python-format
+msgid "Bad port format: port uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
+#, python-format
+msgid "Bad networks format: network uuid is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
+#, python-format
+msgid "Invalid fixed IP address (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
+#, python-format
+msgid "Duplicate networks (%s) are not allowed"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
+#, python-format
+msgid "Bad network format: missing %s"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
+msgid "Bad networks format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
+msgid "Userdata content cannot be decoded"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
+msgid "accessIPv4 is not proper IPv4 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
+msgid "accessIPv6 is not proper IPv6 format"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
+msgid "Server name is not defined"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
+msgid "Invalid flavorRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
+msgid "min_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
+msgid "min_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
+msgid "max_count must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
+msgid "max_count must be > 0"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
+msgid "min_count must be <= max_count"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
+msgid "Can not find requested image"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
+msgid "Invalid key_name provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
+msgid "HostId cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
+msgid "Personality cannot be updated."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
+msgid "Instance has not been resized."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
+msgid "Flavor used by the instance could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
+msgid "Argument 'type' for reboot is not HARD or SOFT"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
+msgid "Missing argument 'type' for reboot"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
+msgid "Unable to locate requested flavor."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
+msgid "Resize requires a flavor change."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+msgid "Invalid instance image."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
+msgid "Missing imageRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
+msgid "Invalid imageRef provided."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
+msgid "Missing flavorRef attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
+msgid "No adminPass was specified"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
+msgid "Invalid adminPass"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
+msgid "Unable to set password on instance"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
+msgid "Unable to parse metadata key/value pairs."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
+msgid "Resize request has invalid 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
+msgid "Resize requests require 'flavorRef' attribute."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1229
+#: nova/api/openstack/compute/contrib/aggregates.py:143
+#: nova/api/openstack/compute/contrib/coverage_ext.py:284
+#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
+msgid "Invalid request body"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
+msgid "Could not parse imageRef from request."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
+msgid "Cannot find image for rebuild"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
+msgid "createImage entity requires name attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
+#, python-format
+msgid "Removing options '%s' from query"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:60
+#, python-format
+msgid "Compute.api::pause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:77
+#, python-format
+msgid "Compute.api::unpause %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:94
+#, python-format
+msgid "compute.api::suspend %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:111
+#, python-format
+msgid "compute.api::resume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:127
+#, python-format
+msgid "Error in migrate %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:141
+#, python-format
+msgid "Compute.api::reset_network %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:154
+#: nova/api/openstack/compute/contrib/admin_actions.py:170
+#: nova/api/openstack/compute/contrib/admin_actions.py:186
+#: nova/api/openstack/compute/contrib/admin_actions.py:321
+#: nova/api/openstack/compute/contrib/multinic.py:41
+#: nova/api/openstack/compute/contrib/rescue.py:42
+msgid "Server not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:157
+#, python-format
+msgid "Compute.api::inject_network_info %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:173
+#, python-format
+msgid "Compute.api::lock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:189
+#, python-format
+msgid "Compute.api::unlock %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:219
+#, python-format
+msgid "createBackup entity requires %s attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:223
+msgid "Malformed createBackup entity"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:229
+msgid "createBackup attribute 'rotation' must be an integer"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:232
+msgid "createBackup attribute 'rotation' must be greater than or equal to zero"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:248
+#: nova/api/openstack/compute/contrib/console_output.py:45
+#: nova/api/openstack/compute/contrib/server_diagnostics.py:47
+#: nova/api/openstack/compute/contrib/server_start_stop.py:38
+msgid "Instance not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:278
+msgid "host and block_migration must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:292
+#, python-format
+msgid "Live migration of instance %s to another host failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:295
+#, python-format
+msgid "Live migration of instance %(id)s to host %(host)s failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:313
+#, python-format
+msgid "Desired state must be specified. Valid states are: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/admin_actions.py:324
+#, python-format
+msgid "Compute.api::resetState %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:89
+#, python-format
+msgid "Cannot show aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:115
+#, python-format
+msgid "Cannot update aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:127
+#, python-format
+msgid "Cannot delete aggregate: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:140
+#, python-format
+msgid "Aggregates does not have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:153
+#: nova/api/openstack/compute/contrib/aggregates.py:158
+#, python-format
+msgid "Cannot add host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:172
+#: nova/api/openstack/compute/contrib/aggregates.py:176
+#, python-format
+msgid "Cannot remove host %(host)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/aggregates.py:196
+#, python-format
+msgid "Cannot set metadata %(metadata)s in aggregate %(id)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:102
+msgid "Attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:109
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:142
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:165
+msgid "Network driver does not support this function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:113
+msgid "Failed to attach interface"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:121
+msgid "Attachments update is not supported"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/attach_interfaces.py:132
+#, python-format
+msgid "Detach interface %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/baremetal_nodes.py:192
+msgid "Must specify id or address"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
+msgid "Cell name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:242
+msgid "Cell name cannot contain '!' or '.'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:249
+msgid "Cell type must be 'parent' or 'child'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
+msgid "No cell information in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:274
+msgid "No cell name in request"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:311
+msgid "Only 'updated_since' and 'project_id' are understood."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/certificates.py:71
+msgid "Only root certificate can be retrieved."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe.py:149
+msgid ""
+"Unable to claim IP for VPN instances, ensure it isn't running, and try "
+"again in a few minutes"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cloudpipe_update.py:41
+#, python-format
+msgid "Unknown action %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:50
+msgid "os-getConsoleOutput malformed or missing from request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:57
+msgid "Length in request body must be an integer value"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/console_output.py:65
+msgid "Unable to get console"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/consoles.py:51
+msgid "Instance not yet ready"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:97
+#, python-format
+msgid "Can't connect to service: %s, no portspecified\n"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:116
+msgid "Coverage begin"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:163
+msgid "Coverage not running"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:192
+msgid "Invalid path"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:196
+msgid "No path given for report file"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:203
+msgid "You can't use html reports without combining"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:216
+#, python-format
+msgid "Directory conflict: %s already exists"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:274
+msgid "Python coverage module is not installed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/coverage_ext.py:282
+#, python-format
+msgid "Coverage doesn't have %s action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/disk_config.py:43
+#, python-format
+msgid "%s must be either 'MANUAL' or 'AUTO'."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:59
+msgid "admin password can't be changed on existing disk"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:67
+msgid "host and onSharedStorage must be specified."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/evacuate.py:78
+#, python-format
+msgid "Error in evacuate, %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
+#, python-format
+msgid "Fixed IP %s has been deleted"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
+#, python-format
+msgid "Fixed IP %s not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:76
+#: nova/api/openstack/compute/contrib/flavor_access.py:100
+msgid "Flavor not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:105
+msgid "Access list not available for public flavors."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavor_access.py:117
+msgid "No request body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/flavorextraspecs.py:55
+msgid "No Request Body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ip_dns.py:223
+msgid "DNS entries not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:129
+#: nova/api/openstack/compute/contrib/floating_ips.py:177
+#, python-format
+msgid "Floating ip not found for id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:162
+#, python-format
+msgid "No more floating ips in pool %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:164
+msgid "No more floating ips available."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:189
+#, python-format
+msgid "Floating ip %s has been disassociated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:216
+#: nova/api/openstack/compute/contrib/floating_ips.py:281
+#: nova/api/openstack/compute/contrib/security_groups.py:445
+msgid "Missing parameter dict"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:219
+#: nova/api/openstack/compute/contrib/floating_ips.py:284
+msgid "Address not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:226
+msgid "No nw_info cache associated with instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:231
+msgid "No fixed ips associated to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:242
+msgid "Specified fixed address not assigned to instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:256
+msgid "floating ip is already associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:259
+msgid "l3driver call to add floating ip failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:263
+#: nova/api/openstack/compute/contrib/floating_ips.py:292
+msgid "floating ip not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:266
+msgid "Error. Unable to associate floating ip"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:307
+msgid "Floating ip is not associated"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips.py:311
+#, python-format
+msgid "Floating ip %(address)s is not associated with instance %(id)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/floating_ips_bulk.py:146
+#: nova/cmd/manage.py:377
+#, python-format
+msgid "/%s should be specified as single address(es) not in cidr format"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/fping.py:53
+msgid "fping utility is not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:183
+#, python-format
+msgid "Invalid update setting: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:186
+#, python-format
+msgid "Invalid status: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:188
+#, python-format
+msgid "Invalid mode: '%s'"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:190
+msgid "'status' or 'maintenance_mode' needed for host update"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:205
+#, python-format
+msgid "Putting host %(host_name)s in maintenance mode %(mode)s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:211
+msgid "Virt driver does not implement host maintenance mode."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:224
+#, python-format
+msgid "Enabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:226
+#, python-format
+msgid "Disabling host %s."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:231
+msgid "Virt driver does not implement host disabled status."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:247
+msgid "Virt driver does not implement host power management."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hosts.py:333
+msgid "Describe-resource is admin only functionality"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:183
+#: nova/api/openstack/compute/contrib/hypervisors.py:194
+#, python-format
+msgid "Hypervisor with ID '%s' could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:202
+msgid "Virt driver does not implement uptime function."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/hypervisors.py:218
+#: nova/api/openstack/compute/contrib/hypervisors.py:228
+#, python-format
+msgid "No hypervisor matching '%s' could be found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/instance_usage_audit_log.py:57
+#, python-format
+msgid "Invalid timestamp for date %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:52
+msgid "Missing 'networkId' argument for addFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:68
+msgid "Missing 'address' argument for removeFixedIp"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/multinic.py:77
+#, python-format
+msgid "Unable to find address %r"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:23
+#, python-format
+msgid "Disassociating host with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:27
+#: nova/api/openstack/compute/contrib/networks_associate.py:38
+#: nova/api/openstack/compute/contrib/networks_associate.py:50
+#: nova/api/openstack/compute/contrib/os_networks.py:79
+#: nova/api/openstack/compute/contrib/os_networks.py:89
+#: nova/api/openstack/compute/contrib/os_networks.py:99
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:110
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:132
+msgid "Network not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/networks_associate.py:34
+#, python-format
+msgid "Disassociating project with network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:74
+#, python-format
+msgid "Disassociating network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:85
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:106
+#, python-format
+msgid "Showing network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:95
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:124
+#, python-format
+msgid "Deleting network with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:110
+msgid "Missing network in body"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:114
+msgid "Network label is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:118
+msgid "Network cidr or cidr_v6 is required"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:120
+#, python-format
+msgid "Creating network with label %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:136
+#, python-format
+msgid "Associating network %(network)s with project %(project)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:144
+msgid "VLAN support must be enabled"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_networks.py:147
+#, python-format
+msgid "Cannot associate network %(network)s with project %(project)s: %(message)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:121
+msgid "Failed to update usages deallocating network."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:151
+msgid "No CIDR requested"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:157
+msgid "Requested network does not contain enough (2+) usable hosts"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:161
+msgid "CIDR is malformed."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:164
+msgid "Address could not be converted."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:172
+msgid "Quota exceeded, too many networks."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/os_tenant_networks.py:183
+msgid "Create networks failed"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:69
+msgid "Quota limit must be -1 or greater."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:104
+#, python-format
+msgid "Bad key(s) %s in quota_set"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/quotas.py:111
+#, python-format
+msgid "Quota for %s should be integer."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/scheduler_hints.py:38
+msgid "Malformed scheduler_hints attribute"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
+#: nova/api/openstack/compute/contrib/security_groups.py:352
+msgid "Not enough parameters to build a valid rule."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:133
+msgid "This default rule already exists."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:154
+#, python-format
+msgid "Showing security_group_default_rule with id %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_group_default_rules.py:158
+msgid "security group default rule not found"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:360
+#, python-format
+msgid "Bad prefix for network in cidr %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:448
+msgid "Security group not specified"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/security_groups.py:452
+msgid "Security group name cannot be empty"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:46
+msgid "start instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/server_start_stop.py:58
+msgid "stop instance"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:121
+msgid "Unknown action"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/services.py:135
+msgid "Unknown service"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/simple_tenant_usage.py:226
+msgid "Invalid start time. The start time cannot occur after the end time."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:75
+#, python-format
+msgid "vol=%s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:187
+#, python-format
+msgid "Delete volume with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:359
+#: nova/api/openstack/compute/contrib/volumes.py:456
+#, python-format
+msgid "Instance %s is not attached."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:380
+#, python-format
+msgid "Bad volumeId format: volumeId is not in proper format (%s)"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:399
+#, python-format
+msgid "Attach volume %(volume_id)s to instance %(server_id)s at %(device)s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:579
+#, python-format
+msgid "Delete snapshot with id: %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:619
+#, python-format
+msgid "Create snapshot from volume %s"
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/volumes.py:626
+#, python-format
+msgid "Invalid value '%s' for force."
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
+#, python-format
+msgid "Reserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
+#, python-format
+msgid "Unreserving IP address %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
+#: nova/api/openstack/compute/views/servers.py:186
+msgid "Instance has had its instance_type removed from the DB"
+msgstr ""
+
+#: nova/cells/messaging.py:204
+#, python-format
+msgid "Error processing message locally: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
+#, python-format
+msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
+msgstr ""
+
+#: nova/cells/messaging.py:380
+#, python-format
+msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
+msgstr ""
+
+#: nova/cells/messaging.py:404
+#, python-format
+msgid "Error locating next hop for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:431
+#, python-format
+msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:510
+#, python-format
+msgid "Error locating next hops for message: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:530
+#, python-format
+msgid "Error sending message to next hops: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:548
+#, python-format
+msgid "Error waiting for responses from neighbor cells: %(exc)s"
+msgstr ""
+
+#: nova/cells/messaging.py:663
+#, python-format
+msgid "Unknown method '%(method)s' in compute API"
+msgstr ""
+
+#: nova/cells/messaging.py:686
+#, python-format
+msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:696
+#, python-format
+msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
+msgstr ""
+
+#: nova/cells/messaging.py:823
+#, python-format
+msgid "Got update for instance: %(instance)s"
+msgstr ""
+
+#: nova/cells/messaging.py:866
+msgid "Got update to delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:881
+#, python-format
+msgid "Got broadcast to %(delete_type)s delete instance"
+msgstr ""
+
+#: nova/cells/messaging.py:895
+#, python-format
+msgid "Got message to create instance fault: %(instance_fault)s"
+msgstr ""
+
+#: nova/cells/messaging.py:916
+#, python-format
+msgid ""
+"Forcing a sync of instances, project_id=%(projid_str)s, "
+"updated_since=%(since_str)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1101
+#, python-format
+msgid "Updating parents with our capabilities: %(capabs)s"
+msgstr ""
+
+#: nova/cells/messaging.py:1121
+#, python-format
+msgid "Updating parents with our capacities: %(capacities)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
+#, python-format
+msgid "Scheduling with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
+#, python-format
+msgid ""
+"No cells available when scheduling. Will retry in %(sleep_time)s "
+"second(s)"
+msgstr ""
+
+#: nova/cells/scheduler.py:258
+#, python-format
+msgid "Error scheduling instances %(instance_uuids)s"
+msgstr ""
+
+#: nova/cells/state.py:271
+msgid "Updating cell cache from db."
+msgstr ""
+
+#: nova/cells/state.py:316
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
+msgstr ""
+
+#: nova/cells/state.py:332
+#, python-format
+msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
+msgstr ""
+
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:48
+msgid "Instance type for vpn instances"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:51
+msgid "Template for cloudpipe instance boot script"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:54
+msgid "Network to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:57
+msgid "Netmask to push into openvpn config"
+msgstr ""
+
+#: nova/cloudpipe/pipelib.py:126
+#, python-format
+msgid "Launching VPN for %s"
+msgstr ""
+
+#: nova/cmd/all.py:60 nova/cmd/all.py:66 nova/cmd/all.py:89
+#, python-format
+msgid "Failed to load %s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:236
+#, python-format
+msgid "start deployment for node %(node_id)s, params %(params)s"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:244
+#, python-format
+msgid "deployment to node %s failed"
+msgstr ""
+
+#: nova/cmd/baremetal_deploy_helper.py:248
+#, python-format
+msgid "deployment to node %s done"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:156 nova/cmd/manage.py:1242
+#, python-format
+msgid "Could not read %s. Re-running with sudo"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:160 nova/cmd/manage.py:1246
+msgid "sudo failed, continuing as if nothing happened"
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:162 nova/cmd/manage.py:1248
+msgid "Please re-run nova-manage as root."
+msgstr ""
+
+#: nova/cmd/baremetal_manage.py:202 nova/cmd/manage.py:1293
+msgid "Command failed, please check log for more info"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:46
+msgid "leasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:66
+msgid "releasing ip"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:121
+#, python-format
+msgid "Called '%(action)s' for mac '%(mac)s' with ip '%(ip)s'"
+msgstr ""
+
+#: nova/cmd/dhcpbridge.py:131
+msgid "Environment variable 'NETWORK_ID' must be set."
+msgstr ""
+
+#: nova/cmd/manage.py:202
+msgid ""
+"The above error may show that the database has not been created.\n"
+"Please create a database using 'nova-manage db sync' before running this "
+"command."
+msgstr ""
+
+#: nova/cmd/manage.py:237
+#, python-format
+msgid "%(key)s is not a valid quota key. Valid options are: %(options)s."
+msgstr ""
+
+#: nova/cmd/manage.py:243
+msgid "Quota"
+msgstr ""
+
+#: nova/cmd/manage.py:244
+msgid "Limit"
+msgstr ""
+
+#: nova/cmd/manage.py:245
+msgid "In Use"
+msgstr ""
+
+#: nova/cmd/manage.py:246
+msgid "Reserved"
+msgstr ""
+
+#: nova/cmd/manage.py:286 nova/cmd/manage.py:357 nova/cmd/manage.py:681
+#: nova/cmd/manage.py:694
+#, python-format
+msgid "error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:294
+msgid "network"
+msgstr ""
+
+#: nova/cmd/manage.py:295
+msgid "IP address"
+msgstr ""
+
+#: nova/cmd/manage.py:296
+msgid "hostname"
+msgstr ""
+
+#: nova/cmd/manage.py:297 nova/cmd/manage.py:814
+msgid "host"
+msgstr ""
+
+#: nova/cmd/manage.py:309 nova/cmd/manage.py:333
+msgid "No fixed IP found."
+msgstr ""
+
+#: nova/cmd/manage.py:325
+#, python-format
+msgid "WARNING: fixed ip %s allocated to missing instance"
+msgstr ""
+
+#: nova/cmd/manage.py:384
+#, python-format
+msgid ""
+"Too many IP addresses will be generated. Please increase /%s to reduce "
+"the number generated."
+msgstr ""
+
+#: nova/cmd/manage.py:433
+msgid "No floating IP addresses have been defined."
+msgstr ""
+
+#: nova/cmd/manage.py:495 nova/tests/test_nova_manage.py:212
+msgid "id"
+msgstr ""
+
+#: nova/cmd/manage.py:496 nova/tests/test_nova_manage.py:213
+msgid "IPv4"
+msgstr ""
+
+#: nova/cmd/manage.py:497 nova/tests/test_nova_manage.py:214
+msgid "IPv6"
+msgstr ""
+
+#: nova/cmd/manage.py:498 nova/tests/test_nova_manage.py:215
+msgid "start address"
+msgstr ""
+
+#: nova/cmd/manage.py:499 nova/tests/test_nova_manage.py:216
+msgid "DNS1"
+msgstr ""
+
+#: nova/cmd/manage.py:500 nova/tests/test_nova_manage.py:217
+msgid "DNS2"
+msgstr ""
+
+#: nova/cmd/manage.py:501 nova/tests/test_nova_manage.py:218
+msgid "VlanID"
+msgstr ""
+
+#: nova/cmd/manage.py:502 nova/cmd/manage.py:608
+#: nova/tests/test_nova_manage.py:219
+msgid "project"
+msgstr ""
+
+#: nova/cmd/manage.py:503 nova/tests/test_nova_manage.py:220
+msgid "uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:510
+msgid "No networks found"
+msgstr ""
+
+#: nova/cmd/manage.py:529
+msgid "Please specify either fixed_range or uuid"
+msgstr ""
+
+#: nova/cmd/manage.py:534
+msgid "UUID is required to delete Quantum Networks"
+msgstr ""
+
+#: nova/cmd/manage.py:537
+msgid "Deleting by fixed_range is not supported with the QuantumManager"
+msgstr ""
+
+#: nova/cmd/manage.py:600
+msgid "instance"
+msgstr ""
+
+#: nova/cmd/manage.py:601
+msgid "node"
+msgstr ""
+
+#: nova/cmd/manage.py:602
+msgid "type"
+msgstr ""
+
+#: nova/cmd/manage.py:603
+msgid "state"
+msgstr ""
+
+#: nova/cmd/manage.py:604
+msgid "launched"
+msgstr ""
+
+#: nova/cmd/manage.py:605
+msgid "image"
+msgstr ""
+
+#: nova/cmd/manage.py:606
+msgid "kernel"
+msgstr ""
+
+#: nova/cmd/manage.py:607
+msgid "ramdisk"
+msgstr ""
+
+#: nova/cmd/manage.py:609
+msgid "user"
+msgstr ""
+
+#: nova/cmd/manage.py:610 nova/cmd/manage.py:815
+msgid "zone"
+msgstr ""
+
+#: nova/cmd/manage.py:611
+msgid "index"
+msgstr ""
+
+#: nova/cmd/manage.py:656
+msgid "Binary"
+msgstr ""
+
+#: nova/cmd/manage.py:657
+msgid "Host"
+msgstr ""
+
+#: nova/cmd/manage.py:658
+msgid "Zone"
+msgstr ""
+
+#: nova/cmd/manage.py:659
+msgid "Status"
+msgstr ""
+
+#: nova/cmd/manage.py:660
+msgid "State"
+msgstr ""
+
+#: nova/cmd/manage.py:661
+msgid "Updated_At"
+msgstr ""
+
+#: nova/cmd/manage.py:683
+#, python-format
+msgid "Service %(service)s on host %(host)s enabled."
+msgstr ""
+
+#: nova/cmd/manage.py:696
+#, python-format
+msgid "Service %(service)s on host %(host)s disabled."
+msgstr ""
+
+#: nova/cmd/manage.py:763
+msgid "An unexpected error has occurred."
+msgstr ""
+
+#: nova/cmd/manage.py:764
+msgid "[Result]"
+msgstr ""
+
+#: nova/cmd/manage.py:768
+msgid "HOST"
+msgstr ""
+
+#: nova/cmd/manage.py:769
+msgid "PROJECT"
+msgstr ""
+
+#: nova/cmd/manage.py:770
+msgid "cpu"
+msgstr ""
+
+#: nova/cmd/manage.py:771
+msgid "mem(mb)"
+msgstr ""
+
+#: nova/cmd/manage.py:772
+msgid "hdd"
+msgstr ""
+
+#: nova/cmd/manage.py:854
+msgid "Must supply a positive value for max_rows"
+msgstr ""
+
+#: nova/cmd/manage.py:893
+msgid "Must supply valid parameters to create instance_type"
+msgstr ""
+
+#: nova/cmd/manage.py:897
+msgid "Instance Type exists."
+msgstr ""
+
+#: nova/cmd/manage.py:898
+msgid "Please ensure instance_type name and flavorid are unique."
+msgstr ""
+
+#: nova/cmd/manage.py:900
+msgid "Currently defined instance_type names and flavorids:"
+msgstr ""
+
+#: nova/cmd/manage.py:905
+msgid "Unknown error"
+msgstr ""
+
+#: nova/cmd/manage.py:908
+#, python-format
+msgid "%s created"
+msgstr ""
+
+#: nova/cmd/manage.py:916
+msgid "Valid instance type name is required"
+msgstr ""
+
+#: nova/cmd/manage.py:919
+#, python-format
+msgid "DB Error: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:924
+#, python-format
+msgid "%s deleted"
+msgstr ""
+
+#: nova/cmd/manage.py:960
+#, python-format
+msgid "Key %(key)s set to %(value)s on instance type %(name)s"
+msgstr ""
+
+#: nova/cmd/manage.py:982
+#, python-format
+msgid "Key %(key)s on instance type %(name)s unset"
+msgstr ""
+
+#: nova/cmd/manage.py:1026
+#, python-format
+msgid "Hypervisor: %s"
+msgstr ""
+
+#: nova/cmd/manage.py:1067
+#, python-format
+msgid "Line %(linenum)d : %(line)s"
+msgstr ""
+
+#: nova/cmd/manage.py:1069
+msgid "No errors in logfiles!"
+msgstr ""
+
+#: nova/cmd/manage.py:1081
+msgid "Unable to find system log file!"
+msgstr ""
+
+#: nova/cmd/manage.py:1085
+#, python-format
+msgid "Last %s nova syslog entries:-"
+msgstr ""
+
+#: nova/cmd/manage.py:1094
+msgid "No nova entries in syslog!"
+msgstr ""
+
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
+msgid "Cannot run any more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:300
+#, python-format
+msgid "Can only run %s more instances of this type."
+msgstr ""
+
+#: nova/compute/api.py:309
+#, python-format
+msgid ""
+"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
+"instances. %(msg)s"
+msgstr ""
+
+#: nova/compute/api.py:329
+#, python-format
+msgid ""
+"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
+"properties"
+msgstr ""
+
+#: nova/compute/api.py:339
+msgid "Metadata property key blank"
+msgstr ""
+
+#: nova/compute/api.py:343
+msgid "Metadata property key greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:347
+msgid "Metadata property value greater than 255 characters"
+msgstr ""
+
+#: nova/compute/api.py:480
+msgid "Failed to set instance name using multi_instance_display_name_template."
+msgstr ""
+
+#: nova/compute/api.py:562
+msgid "Cannot attach one or more volumes to multiple instances"
+msgstr ""
+
+#: nova/compute/api.py:660
+#, python-format
+msgid "Going to run %s instances..."
+msgstr ""
+
+#: nova/compute/api.py:804
+#, python-format
+msgid "bdm %s"
+msgstr ""
+
+#: nova/compute/api.py:831
+#, python-format
+msgid "block_device_mapping %s"
+msgstr ""
+
+#: nova/compute/api.py:1114
+msgid "instance termination disabled"
+msgstr ""
+
+#: nova/compute/api.py:1251
+#, python-format
+msgid "instance type %(old_inst_type_id)d not found"
+msgstr ""
+
+#: nova/compute/api.py:1257
+msgid "going to delete a resizing instance"
+msgstr ""
+
+#: nova/compute/api.py:1267
+#, python-format
+msgid "instance's host %s is down, deleting from database"
+msgstr ""
+
+#: nova/compute/api.py:1310
+msgid "Going to try to soft delete instance"
+msgstr ""
+
+#: nova/compute/api.py:1334
+msgid "Going to try to terminate instance"
+msgstr ""
+
+#: nova/compute/api.py:1384
+msgid "Going to try to stop instance"
+msgstr ""
+
+#: nova/compute/api.py:1401
+msgid "Going to try to start instance"
+msgstr ""
+
+#: nova/compute/api.py:1474
+#, python-format
+msgid "Searching by: %s"
+msgstr ""
+
+#: nova/compute/api.py:1711
+#, python-format
+msgid "snapshot for %s"
+msgstr ""
+
+#: nova/compute/api.py:2045
+msgid "flavor_id is None. Assuming migration."
+msgstr ""
+
+#: nova/compute/api.py:2054
+#, python-format
+msgid ""
+"Old instance type %(current_instance_type_name)s, new instance type "
+"%(new_instance_type_name)s"
+msgstr ""
+
+#: nova/compute/api.py:2100
+#, python-format
+msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
+msgstr ""
+
+#: nova/compute/api.py:2237
+msgid "Cannot rescue a volume-backed instance"
+msgstr ""
+
+#: nova/compute/api.py:2342
+msgid "Locking"
+msgstr ""
+
+#: nova/compute/api.py:2350
+msgid "Unlocking"
+msgstr ""
+
+#: nova/compute/api.py:2422
+msgid "Volume must be attached in order to detach."
+msgstr ""
+
+#: nova/compute/api.py:2536
+#, python-format
+msgid "Going to try to live migrate instance to %s"
+msgstr ""
+
+#: nova/compute/api.py:2558
+msgid "vm evacuation scheduled"
+msgstr ""
+
+#: nova/compute/api.py:2562
+#, python-format
+msgid ""
+"Instance compute service state on %(inst_host)s expected to be down, but "
+"it was up."
+msgstr ""
+
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
+msgid "Keypair name contains unsafe characters"
+msgstr ""
+
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
+msgid "Keypair name must be between 1 and 255 characters long"
+msgstr ""
+
+#: nova/compute/api.py:2894
+#, python-format
+msgid "Security group %s is not a string or unicode"
+msgstr ""
+
+#: nova/compute/api.py:2897
+#, python-format
+msgid "Security group %s cannot be empty."
+msgstr ""
+
+#: nova/compute/api.py:2905
+#, python-format
+msgid ""
+"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
+"limited to '%(allowed)'."
+msgstr ""
+
+#: nova/compute/api.py:2911
+#, python-format
+msgid "Security group %s should not be greater than 255 characters."
+msgstr ""
+
+#: nova/compute/api.py:2929
+msgid "Quota exceeded, too many security groups."
+msgstr ""
+
+#: nova/compute/api.py:2932
+#, python-format
+msgid "Create Security Group %s"
+msgstr ""
+
+#: nova/compute/api.py:2939
+#, python-format
+msgid "Security group %s already exists"
+msgstr ""
+
+#: nova/compute/api.py:2958
+#, python-format
+msgid "Unable to update system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3018
+#, python-format
+msgid "Unable to delete system group '%s'"
+msgstr ""
+
+#: nova/compute/api.py:3023
+msgid "Security group is still in use"
+msgstr ""
+
+#: nova/compute/api.py:3031
+msgid "Failed to update usages deallocating security group"
+msgstr ""
+
+#: nova/compute/api.py:3034
+#, python-format
+msgid "Delete security group %s"
+msgstr ""
+
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
+#, python-format
+msgid "Rule (%s) not found"
+msgstr ""
+
+#: nova/compute/api.py:3127
+msgid "Quota exceeded, too many security group rules."
+msgstr ""
+
+#: nova/compute/api.py:3130
+#, python-format
+msgid "Authorize security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3139
+#, python-format
+msgid "Revoke security group ingress %s"
+msgstr ""
+
+#: nova/compute/api.py:3192
+msgid "Security group id should be integer"
+msgstr ""
+
+#: nova/compute/claims.py:91 nova/compute/claims.py:219
+#, python-format
+msgid "Aborting claim: %s"
+msgstr ""
+
+#: nova/compute/claims.py:113
+#, python-format
+msgid ""
+"Attempting claim: memory %(memory_mb)d MB, disk %(disk_gb)d GB, VCPUs "
+"%(vcpus)d"
+msgstr ""
+
+#: nova/compute/claims.py:125
+msgid "Claim successful"
+msgstr ""
+
+#: nova/compute/claims.py:127
+msgid "Claim failed"
+msgstr ""
+
+#: nova/compute/claims.py:132
+msgid "Memory"
+msgstr ""
+
+#: nova/compute/claims.py:141
+msgid "Disk"
+msgstr ""
+
+#: nova/compute/claims.py:150
+msgid "CPU"
+msgstr ""
+
+#: nova/compute/claims.py:162
+#, python-format
+msgid "Total %(type)s: %(total)d %(unit)s, used: %(used).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:169
+#, python-format
+msgid "%(type)s limit not specified, defaulting to unlimited"
+msgstr ""
+
+#: nova/compute/claims.py:176
+#, python-format
+msgid "%(type)s limit: %(limit).02f %(unit)s, free: %(free).02f %(unit)s"
+msgstr ""
+
+#: nova/compute/claims.py:184
+#, python-format
+msgid ""
+"Unable to claim resources. Free %(type)s %(free).02f %(unit)s < "
+"requested %(requested)d %(unit)s"
+msgstr ""
+
+#: nova/compute/flavors.py:90
+msgid "names can only contain [a-zA-Z0-9_.- ]"
+msgstr ""
+
+#: nova/compute/flavors.py:99
+#, python-format
+msgid "'%s' argument must be greater than 0"
+msgstr ""
+
+#: nova/compute/flavors.py:108
+#, python-format
+msgid "'%s' argument must be greater than or equal to 0"
+msgstr ""
+
+#: nova/compute/flavors.py:117
+msgid "'rxtx_factor' argument must be a positive float"
+msgstr ""
+
+#: nova/compute/flavors.py:130
+msgid "is_public must be a boolean"
+msgstr ""
+
+#: nova/compute/flavors.py:135
+#, python-format
+msgid "DB error: %s"
+msgstr ""
+
+#: nova/compute/flavors.py:145
+#, python-format
+msgid "Instance type %s not found for deletion"
+msgstr ""
+
+#: nova/compute/manager.py:205
+msgid "Possibly task preempted."
+msgstr ""
+
+#: nova/compute/manager.py:363
+#, python-format
+msgid "%(nodename)s is not a valid node managed by this compute host."
+msgstr ""
+
+#: nova/compute/manager.py:392
+msgid "Instance has been destroyed from under us while trying to set it to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:409
+#, python-format
+msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
+msgstr ""
+
+#: nova/compute/manager.py:425
+#, python-format
+msgid ""
+"Instance %(driver_instance)s found in the hypervisor, but not in the "
+"database"
+msgstr ""
+
+#: nova/compute/manager.py:446
+#, python-format
+msgid ""
+"Deleting instance as its host (%(instance_host)s) is not equal to our "
+"host (%(our_host)s)."
+msgstr ""
+
+#: nova/compute/manager.py:461
+msgid "Instance has been marked deleted already, removing it from the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:482
+msgid ""
+"Hypervisor driver does not support instance shared storage check, "
+"assuming it's not on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:488
+msgid "Failed to check if instance shared"
+msgstr ""
+
+#: nova/compute/manager.py:540
+msgid "Failed to revert crashed migration"
+msgstr ""
+
+#: nova/compute/manager.py:543
+msgid "Instance found in migrating state during startup. Resetting task_state"
+msgstr ""
+
+#: nova/compute/manager.py:554
+#, python-format
+msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
+msgstr ""
+
+#: nova/compute/manager.py:559
+msgid "Rebooting instance after nova-compute restart."
+msgstr ""
+
+#: nova/compute/manager.py:573
+msgid "Hypervisor driver does not support resume guests"
+msgstr ""
+
+#: nova/compute/manager.py:578
+msgid "Failed to resume instance"
+msgstr ""
+
+#: nova/compute/manager.py:588
+msgid "Hypervisor driver does not support firewall rules"
+msgstr ""
+
+#: nova/compute/manager.py:592
+#, python-format
+msgid "Lifecycle event %(state)d on VM %(uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:608
+#, python-format
+msgid "Unexpected power state %d"
+msgstr ""
+
+#: nova/compute/manager.py:620
+#, python-format
+msgid "Ignoring event %s"
+msgstr ""
+
+#: nova/compute/manager.py:658
+msgid "Checking state"
+msgstr ""
+
+#: nova/compute/manager.py:756
+#, python-format
+msgid "Volume id: %s finished being created but was not set as 'available'"
+msgstr ""
+
+#: nova/compute/manager.py:773
+#, python-format
+msgid "Setting up bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:873
+msgid "Success"
+msgstr ""
+
+#: nova/compute/manager.py:896
+msgid "Instance disappeared before we could start it"
+msgstr ""
+
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
+#, python-format
+msgid "No node specified, defaulting to %(node)s"
+msgstr ""
+
+#: nova/compute/manager.py:968
+msgid "Failed to dealloc network for deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:978
+msgid "Instance was deleted during spawn."
+msgstr ""
+
+#: nova/compute/manager.py:1009
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1026
+msgid "Clean up resource before rescheduling."
+msgstr ""
+
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
+msgid "Error trying to reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1064
+msgid "Retry info not present, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1069
+msgid "No request spec, will not reschedule"
+msgstr ""
+
+#: nova/compute/manager.py:1075
+#, python-format
+msgid "Re-scheduling %(method)s: attempt %(num)d"
+msgstr ""
+
+#: nova/compute/manager.py:1104
+msgid "Instance build timed out. Set to error state."
+msgstr ""
+
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
+msgstr ""
+
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
+msgstr ""
+
+#: nova/compute/manager.py:1149
+msgid "Instance failed network setup"
+msgstr ""
+
+#: nova/compute/manager.py:1151
+#, python-format
+msgid "Instance network_info: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:1162
+msgid "Instance failed block device setup"
+msgstr ""
+
+#: nova/compute/manager.py:1181
+msgid "Instance failed to spawn"
+msgstr ""
+
+#: nova/compute/manager.py:1232
+msgid "Deallocating network for instance"
+msgstr ""
+
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
+msgstr ""
+
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
+msgstr ""
+
+#: nova/compute/manager.py:1356
+#, python-format
+msgid "Ignoring DiskNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1359
+#, python-format
+msgid "Ignoring VolumeNotFound: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1366
+#, python-format
+msgid "terminating bdm %s"
+msgstr ""
+
+#: nova/compute/manager.py:1414
+#, python-format
+msgid "Ignoring volume cleanup failure due to %s"
+msgstr ""
+
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
+#, python-format
+msgid "%s. Setting instance vm_state to ERROR"
+msgstr ""
+
+#: nova/compute/manager.py:1628
+msgid "Rebuilding instance"
+msgstr ""
+
+#: nova/compute/manager.py:1641
+msgid "Invalid state of instance files on shared storage"
+msgstr ""
+
+#: nova/compute/manager.py:1645
+msgid "disk on shared storage, recreating using existing disk"
+msgstr ""
+
+#: nova/compute/manager.py:1649
+#, python-format
+msgid "disk not on shared storagerebuilding from: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1732
+#, python-format
+msgid "bringing vm to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:1764
+#, python-format
+msgid "Detaching from volume api: %s"
+msgstr ""
+
+#: nova/compute/manager.py:1782
+msgid "Rebooting instance"
+msgstr ""
+
+#: nova/compute/manager.py:1807
+#, python-format
+msgid ""
+"trying to reboot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1823
+#, python-format
+msgid "Cannot reboot instance: %(exc)s"
+msgstr ""
+
+#: nova/compute/manager.py:1836
+msgid "Instance disappeared during reboot"
+msgstr ""
+
+#: nova/compute/manager.py:1863
+msgid "instance snapshotting"
+msgstr ""
+
+#: nova/compute/manager.py:1869
+#, python-format
+msgid ""
+"trying to snapshot a non-running instance: (state: %(state)s expected: "
+"%(running)s)"
+msgstr ""
+
+#: nova/compute/manager.py:1930
+#, python-format
+msgid "Found %(num_images)d images (rotation: %(rotation)d)"
+msgstr ""
+
+#: nova/compute/manager.py:1937
+#, python-format
+msgid "Rotating out %d backups"
+msgstr ""
+
+#: nova/compute/manager.py:1942
+#, python-format
+msgid "Deleting image %s"
+msgstr ""
+
+#: nova/compute/manager.py:1970
+#, python-format
+msgid "Failed to set admin password. Instance %s is not running"
+msgstr ""
+
+#: nova/compute/manager.py:1977
+msgid "Root password set"
+msgstr ""
+
+#: nova/compute/manager.py:1984
+msgid "set_admin_password is not implemented by this driver or guest instance."
+msgstr ""
+
+#: nova/compute/manager.py:1999
+#, python-format
+msgid "set_admin_password failed: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2006
+msgid "error setting admin password"
+msgstr ""
+
+#: nova/compute/manager.py:2019
+#, python-format
+msgid ""
+"trying to inject a file into a non-running (state: "
+"%(current_power_state)s expected: %(expected_state)s)"
+msgstr ""
+
+#: nova/compute/manager.py:2023
+#, python-format
+msgid "injecting file to %(path)s"
+msgstr ""
+
+#: nova/compute/manager.py:2043
+msgid ""
+"Unable to find a different image to use for rescue VM, using instance's "
+"current image"
+msgstr ""
+
+#: nova/compute/manager.py:2056
+msgid "Rescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2075
+msgid "Error trying to Rescue Instance"
+msgstr ""
+
+#: nova/compute/manager.py:2079
+#, python-format
+msgid "Driver Error: %s"
+msgstr ""
+
+#: nova/compute/manager.py:2097
+msgid "Unrescuing"
+msgstr ""
+
+#: nova/compute/manager.py:2118
+#, python-format
+msgid "Changing instance metadata according to %(diff)r"
+msgstr ""
+
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
+msgid "Instance has no source host"
+msgstr ""
+
+#: nova/compute/manager.py:2381
+msgid "destination same as source!"
+msgstr ""
+
+#: nova/compute/manager.py:2403
+msgid "Migrating"
+msgstr ""
+
+#: nova/compute/manager.py:2655
+#, python-format
+msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
+msgstr ""
+
+#: nova/compute/manager.py:2718
+msgid "Pausing"
+msgstr ""
+
+#: nova/compute/manager.py:2736
+msgid "Unpausing"
+msgstr ""
+
+#: nova/compute/manager.py:2774
+msgid "Retrieving diagnostics"
+msgstr ""
+
+#: nova/compute/manager.py:2805
+msgid "Resuming"
+msgstr ""
+
+#: nova/compute/manager.py:2825
+msgid "Reset network"
+msgstr ""
+
+#: nova/compute/manager.py:2830
+msgid "Inject network info"
+msgstr ""
+
+#: nova/compute/manager.py:2833
+#, python-format
+msgid "network_info to inject: |%s|"
+msgstr ""
+
+#: nova/compute/manager.py:2850
+msgid "Get console output"
+msgstr ""
+
+#: nova/compute/manager.py:2877
+msgid "Getting vnc console"
+msgstr ""
+
+#: nova/compute/manager.py:2912
+msgid "Getting spice console"
+msgstr ""
+
+#: nova/compute/manager.py:2959
+#, python-format
+msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3009
+#, python-format
+msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3018
+#, python-format
+msgid ""
+"Failed to connect to volume %(volume_id)s while attaching at "
+"%(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3033
+#, python-format
+msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
+msgstr ""
+
+#: nova/compute/manager.py:3063
+#, python-format
+msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3073
+msgid "Detaching volume from unknown instance"
+msgstr ""
+
+#: nova/compute/manager.py:3080
+#, python-format
+msgid "Failed to detach volume %(volume_id)s from %(mp)s"
+msgstr ""
+
+#: nova/compute/manager.py:3103
+msgid "Updating volume usage cache with totals"
+msgstr ""
+
+#: nova/compute/manager.py:3139
+#, python-format
+msgid "allocate_port_for_instance returned %(ports)s ports"
+msgstr ""
+
+#: nova/compute/manager.py:3159
+#, python-format
+msgid "Port %(port_id)s is not attached"
+msgstr ""
+
+#: nova/compute/manager.py:3173
+#, python-format
+msgid "Host %(host)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3326
+#, python-format
+msgid "Pre live migration failed at %(dest)s"
+msgstr ""
+
+#: nova/compute/manager.py:3354
+msgid "_post_live_migration() is started.."
+msgstr ""
+
+#: nova/compute/manager.py:3409
+#, python-format
+msgid "Migrating instance to %(dest)s finished successfully."
+msgstr ""
+
+#: nova/compute/manager.py:3411
+msgid ""
+"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
+"with matching name.\" This error can be safely ignored."
+msgstr ""
+
+#: nova/compute/manager.py:3426
+msgid "Post operation of migration started"
+msgstr ""
+
+#: nova/compute/manager.py:3458
+#, python-format
+msgid "Failed to get compute_info for %s"
+msgstr ""
+
+#: nova/compute/manager.py:3587
+msgid "Updated the info_cache for instance"
+msgstr ""
+
+#: nova/compute/manager.py:3637
+#, python-format
+msgid ""
+"Found %(migration_count)d unconfirmed migrations older than "
+"%(confirm_window)d seconds"
+msgstr ""
+
+#: nova/compute/manager.py:3643
+#, python-format
+msgid "Setting migration %(migration_id)s to error: %(reason)s"
+msgstr ""
+
+#: nova/compute/manager.py:3652
+#, python-format
+msgid ""
+"Automatically confirming migration %(migration_id)s for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/compute/manager.py:3659
+#, python-format
+msgid "Instance %(instance_uuid)s not found"
+msgstr ""
+
+#: nova/compute/manager.py:3663
+msgid "In ERROR state"
+msgstr ""
+
+#: nova/compute/manager.py:3670
+#, python-format
+msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
+msgstr ""
+
+#: nova/compute/manager.py:3679
+#, python-format
+msgid "Error auto-confirming resize: %(e)s. Will retry later."
+msgstr ""
+
+#: nova/compute/manager.py:3696
+#, python-format
+msgid ""
+"Running instance usage audit for host %(host)s from %(begin_time)s to "
+"%(end_time)s. %(number_instances)s instances."
+msgstr ""
+
+#: nova/compute/manager.py:3715
+#, python-format
+msgid "Failed to generate usage audit for instance on host %s"
+msgstr ""
+
+#: nova/compute/manager.py:3739
+msgid "Updating bandwidth usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3843
+msgid "Updating volume usage cache"
+msgstr ""
+
+#: nova/compute/manager.py:3858
+msgid "Updating host status"
+msgstr ""
+
+#: nova/compute/manager.py:3885
+#, python-format
+msgid ""
+"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
+"the hypervisor."
+msgstr ""
+
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
+msgid "During sync_power_state the instance has a pending task. Skip."
+msgstr ""
+
+#: nova/compute/manager.py:3927
+#, python-format
+msgid ""
+"During the sync_power process the instance has moved from host %(src)s to"
+" host %(dst)s"
+msgstr ""
+
+#: nova/compute/manager.py:3965
+msgid "Instance shutdown by itself. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
+msgid "error during stop() in sync_power_state."
+msgstr ""
+
+#: nova/compute/manager.py:3981
+msgid "Instance is suspended unexpectedly. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:3997
+msgid "Instance is paused unexpectedly. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4003
+msgid "Instance is unexpectedly not found. Ignore."
+msgstr ""
+
+#: nova/compute/manager.py:4009
+msgid "Instance is not stopped. Calling the stop API."
+msgstr ""
+
+#: nova/compute/manager.py:4025
+msgid "Instance is not (soft-)deleted."
+msgstr ""
+
+#: nova/compute/manager.py:4033
+msgid "CONF.reclaim_instance_interval <= 0, skipping..."
+msgstr ""
+
+#: nova/compute/manager.py:4045
+msgid "Reclaiming deleted instance"
+msgstr ""
+
+#: nova/compute/manager.py:4072
+#, python-format
+msgid "Deleting orphan compute node %s"
+msgstr ""
+
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
+#, python-format
+msgid "No service record for host %s"
+msgstr ""
+
+#: nova/compute/manager.py:4123
+#, python-format
+msgid ""
+"Detected instance with name label '%(name)s' which is marked as DELETED "
+"but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4130
+#, python-format
+msgid ""
+"Destroying instance with name label '%(name)s' which is marked as DELETED"
+" but still present on host."
+msgstr ""
+
+#: nova/compute/manager.py:4137
+#, python-format
+msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
+msgstr ""
+
+#: nova/compute/manager.py:4164
+#, python-format
+msgid "Setting instance back to ACTIVE after: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:92
+msgid ""
+"Host field should not be set on the instance until resources have been "
+"claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:97
+msgid ""
+"Node field should be not be set on the instance until resources have been"
+" claimed."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:244
+msgid "Auditing locally available compute resources"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:249
+msgid ""
+"Virt driver does not support 'get_available_resource' Compute tracking "
+"is disabled."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:301
+#, python-format
+msgid "Compute_service record created for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:307
+#, python-format
+msgid "Compute_service record updated for %(host)s:%(node)s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:331
+#, python-format
+msgid "Hypervisor: free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:332
+#, python-format
+msgid "Hypervisor: free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:337
+#, python-format
+msgid "Hypervisor: free VCPUs: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:339
+msgid "Hypervisor: VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:346
+#, python-format
+msgid "Free ram (MB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:347
+#, python-format
+msgid "Free disk (GB): %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:352
+#, python-format
+msgid "Free VCPUS: %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:354
+msgid "Free VCPU information unavailable"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:383
+#, python-format
+msgid "Updating from migration %s"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:443
+msgid "Instance not resizing, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:458
+msgid "InstanceType could not be found, skipping migration."
+msgstr ""
+
+#: nova/compute/resource_tracker.py:542
+#, python-format
+msgid ""
+"Detected running orphan instance: %(uuid)s (consuming %(memory_mb)s MB "
+"memory"
+msgstr ""
+
+#: nova/compute/resource_tracker.py:555
+#, python-format
+msgid "Missing keys: %s"
+msgstr ""
+
+#: nova/compute/rpcapi.py:51
+msgid "No compute host specified"
+msgstr ""
+
+#: nova/compute/rpcapi.py:54
+#, python-format
+msgid "Unable to find host for Instance %s"
+msgstr ""
+
+#: nova/compute/utils.py:141
+#, python-format
+msgid "Using %(prefix)s instead of %(req_prefix)s"
+msgstr ""
+
+#: nova/conductor/api.py:398
+msgid ""
+"Timed out waiting for nova-conductor. Is it running? Or did this service "
+"start before nova-conductor?"
+msgstr ""
+
+#: nova/conductor/manager.py:115
+#, python-format
+msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
+msgstr ""
+
+#: nova/conductor/manager.py:290
+msgid "Invalid block_device_mapping_destroy invocation"
+msgstr ""
+
+#: nova/console/manager.py:81 nova/console/vmrc_manager.py:63
+msgid "Adding console"
+msgstr ""
+
+#: nova/console/manager.py:101 nova/console/vmrc_manager.py:113
+#, python-format
+msgid "Tried to remove non-existent console %(console_id)s."
+msgstr ""
+
+#: nova/console/vmrc_manager.py:116
+#, python-format
+msgid "Removing console %(console_id)s."
+msgstr ""
+
+#: nova/console/websocketproxy.py:54
+msgid "Invalid Token"
+msgstr ""
+
+#: nova/console/websocketproxy.py:73
+msgid "Invalid Connection Info"
+msgstr ""
+
+#: nova/console/xvp.py:100
+msgid "Rebuilding xvp conf"
+msgstr ""
+
+#: nova/console/xvp.py:119
+#, python-format
+msgid "Re-wrote %s"
+msgstr ""
+
+#: nova/console/xvp.py:124
+msgid "Failed to write configuration file"
+msgstr ""
+
+#: nova/console/xvp.py:127
+msgid "Stopping xvp"
+msgstr ""
+
+#: nova/console/xvp.py:140
+msgid "Starting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:147
+#, python-format
+msgid "Error starting xvp: %s"
+msgstr ""
+
+#: nova/console/xvp.py:150
+msgid "Restarting xvp"
+msgstr ""
+
+#: nova/console/xvp.py:152
+msgid "xvp not running..."
+msgstr ""
+
+#: nova/console/xvp.py:203
+msgid "Failed to run xvp."
+msgstr ""
+
+#: nova/consoleauth/manager.py:89
+#, python-format
+msgid "Received Token: %(token)s, %(token_dict)s)"
+msgstr ""
+
+#: nova/consoleauth/manager.py:113
+#, python-format
+msgid "Checking Token: %(token)s, %(token_valid)s)"
+msgstr ""
+
+#: nova/db/api.py:592
+msgid "Failed to notify cells of instance destroy"
+msgstr ""
+
+#: nova/db/api.py:674 nova/db/api.py:695
+msgid "Failed to notify cells of instance update"
+msgstr ""
+
+#: nova/db/api.py:1548
+msgid "Failed to notify cells of bw_usage update"
+msgstr ""
+
+#: nova/db/api.py:1685
+msgid "Failed to notify cells of instance fault"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:160
+#, python-format
+msgid "Deadlock detected when running '%(func_name)s': Retrying..."
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:195
+msgid "model or base_model parameter should be subclass of NovaBase"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#, python-format
+msgid "Unrecognized read_deleted value '%s'"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
+#, python-format
+msgid ""
+"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
+"empty, \"global\" or \"project\""
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1572
+#, python-format
+msgid "Invalid instance id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:2931
+#, python-format
+msgid "Change will make usage less than 0 for the following resources: %(unders)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:4461
+#, python-format
+msgid ""
+"Volume(%s) has lower stats then what is in the database. Instance must "
+"have been rebooted or crashed. Updating totals."
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:69
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:66
+msgid "version should be an integer"
+msgstr ""
+
+#: nova/db/sqlalchemy/migration.py:96
+#: nova/virt/baremetal/db/sqlalchemy/migration.py:94
+msgid "Upgrade DB using Essex release first."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:73
+#, python-format
+msgid ""
+"Please specify column %s in col_name_col_instance param. It is required "
+"because column has unsupported type by sqlite)."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:79
+#, python-format
+msgid ""
+"col_name_col_instance param has wrong type of column instance for column "
+"%s It should be instance of sqlalchemy.Column."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:181
+#, python-format
+msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:215
+#, python-format
+msgid "Missing column %(table)s.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:221
+#, python-format
+msgid ""
+"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
+"%(shadow_c_type)s"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:230
+#, python-format
+msgid "Extra column %(table)%.%(column)s in shadow table"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:250
+msgid "Specify `table_name` or `table` param"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:253
+msgid "Specify only one param `table_name` `table`"
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
+msgid "Exception while creating table."
+msgstr ""
+
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
+msgid "Exception while seeding instance_types table"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/145_add_volume_usage_cache.py:68
+msgid "volume_usage_cache table not dropped"
+msgstr ""
+
+#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:77
+#, python-format
+msgid "table '%s' not dropped"
+msgstr ""
+
+#: nova/image/glance.py:187
+#, python-format
+msgid ""
+"Error contacting glance server '%(host)s:%(port)s' for '%(method)s', "
+"%(extra)s."
+msgstr ""
+
+#: nova/image/glance.py:495
+#, python-format
+msgid "fetching image %s from glance"
+msgstr ""
+
+#: nova/image/s3.py:335
+#, python-format
+msgid "Failed to download %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:352
+#, python-format
+msgid "Failed to decrypt %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:363
+#, python-format
+msgid "Failed to untar %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:373
+#, python-format
+msgid "Failed to upload %(image_location)s to %(image_path)s"
+msgstr ""
+
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
+#, python-format
+msgid "Failed to decrypt private key: %s"
+msgstr ""
+
+#: nova/image/s3.py:407
+#, python-format
+msgid "Failed to decrypt initialization vector: %s"
+msgstr ""
+
+#: nova/image/s3.py:418
+#, python-format
+msgid "Failed to decrypt image file %(image_file)s: %(err)s"
+msgstr ""
+
+#: nova/image/s3.py:430
+msgid "Unsafe filenames in image"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:38 nova/ipv6/rfc2462.py:34
+#, python-format
+msgid "Bad mac for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:40 nova/ipv6/rfc2462.py:36
+#, python-format
+msgid "Bad prefix for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/ipv6/account_identifier.py:42
+#, python-format
+msgid "Bad project_id for to_global_ipv6: %s"
+msgstr ""
+
+#: nova/network/api.py:56
+msgid "instance is a required argument to use @refresh_cache"
+msgstr ""
+
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
+msgid "Failed storing info cache"
+msgstr ""
+
+#: nova/network/api.py:248
+#, python-format
+msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
+msgstr ""
+
+#: nova/network/driver.py:40
+msgid "Network driver option required, but not specified"
+msgstr ""
+
+#: nova/network/driver.py:43
+#, python-format
+msgid "Loading network driver '%s'"
+msgstr ""
+
+#: nova/network/floating_ips.py:88
+#, python-format
+msgid "Fixed ip %(fixed_ip_id)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:98 nova/network/floating_ips.py:374
+#, python-format
+msgid "Interface %(interface)s not found"
+msgstr ""
+
+#: nova/network/floating_ips.py:122
+#, python-format
+msgid "floating IP allocation for instance |%(floating_address)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:179
+msgid "Floating IP is not associated. Ignore."
+msgstr ""
+
+#: nova/network/floating_ips.py:197
+#, python-format
+msgid "Address |%(address)s| is not allocated"
+msgstr ""
+
+#: nova/network/floating_ips.py:201
+#, python-format
+msgid "Address |%(address)s| is not allocated to your project |%(project)s|"
+msgstr ""
+
+#: nova/network/floating_ips.py:221
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:282
+msgid "Failed to update usages deallocating floating IP"
+msgstr ""
+
+#: nova/network/floating_ips.py:532
+#, python-format
+msgid "Starting migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:539
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notmigrate it "
+msgstr ""
+
+#: nova/network/floating_ips.py:574
+#, python-format
+msgid "Finishing migration network for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/network/floating_ips.py:582
+#, python-format
+msgid ""
+"Floating ip address |%(address)s| no longer belongs to instance "
+"%(instance_uuid)s. Will notsetup it."
+msgstr ""
+
+#: nova/network/floating_ips.py:630
+#, python-format
+msgid ""
+"Database inconsistency: DNS domain |%s| is registered in the Nova db but "
+"not visible to either the floating or instance DNS driver. It will be "
+"ignored."
+msgstr ""
+
+#: nova/network/floating_ips.py:670
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing zone to |%(av_zone)s|."
+msgstr ""
+
+#: nova/network/floating_ips.py:679
+#, python-format
+msgid "Domain |%(domain)s| already exists, changing project to |%(project)s|."
+msgstr ""
+
+#: nova/network/ldapdns.py:100
+#, python-format
+msgid ""
+"Found multiple matches for domain %(domain)s.\n"
+"%(entry)s"
+msgstr ""
+
+#: nova/network/ldapdns.py:127
+#, python-format
+msgid "Unable to dequalify. %(name)s is not in %(domain)s.\n"
+msgstr ""
+
+#: nova/network/ldapdns.py:322
+msgid "This driver only supports type 'a' entries."
+msgstr ""
+
+#: nova/network/ldapdns.py:365
+msgid "This shouldn't be getting called except during testing."
+msgstr ""
+
+#: nova/network/linux_net.py:219
+#, python-format
+msgid "Attempted to remove chain %s which does not exist"
+msgstr ""
+
+#: nova/network/linux_net.py:254
+#, python-format
+msgid "Unknown chain: %r"
+msgstr ""
+
+#: nova/network/linux_net.py:279
+#, python-format
+msgid ""
+"Tried to remove rule that was not there: %(chain)r %(rule)r %(wrap)r "
+"%(top)r"
+msgstr ""
+
+#: nova/network/linux_net.py:424
+msgid "IPTablesManager.apply completed with success"
+msgstr ""
+
+#: nova/network/linux_net.py:680
+#, python-format
+msgid "arping error for ip %s"
+msgstr ""
+
+#: nova/network/linux_net.py:730
+#, python-format
+msgid "Removed %(num)d duplicate rules for floating ip %(float)s"
+msgstr ""
+
+#: nova/network/linux_net.py:778
+#, python-format
+msgid "Error deleting conntrack entries for %s"
+msgstr ""
+
+#: nova/network/linux_net.py:979
+#, python-format
+msgid "Pid %d is stale, skip killing dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1024
+#, python-format
+msgid "Hupping dnsmasq threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1026
+#, python-format
+msgid "Pid %d is stale, relaunching dnsmasq"
+msgstr ""
+
+#: nova/network/linux_net.py:1106
+#, python-format
+msgid "killing radvd threw %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1108
+#, python-format
+msgid "Pid %d is stale, relaunching radvd"
+msgstr ""
+
+#: nova/network/linux_net.py:1284
+#, python-format
+msgid "Net device removed: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1287
+#, python-format
+msgid "Failed removing net device: '%s'"
+msgstr ""
+
+#: nova/network/linux_net.py:1405
+#, python-format
+msgid "Starting VLAN interface %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1451
+#, python-format
+msgid "Starting Bridge %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1463
+#, python-format
+msgid "Adding interface %(interface)s to bridge %(bridge)s"
+msgstr ""
+
+#: nova/network/linux_net.py:1499
+#, python-format
+msgid "Failed to add interface: %s"
+msgstr ""
+
+#: nova/network/linux_net.py:1736
+#, python-format
+msgid "Starting bridge %s "
+msgstr ""
+
+#: nova/network/linux_net.py:1744
+#, python-format
+msgid "Done starting bridge %s"
+msgstr ""
+
+#: nova/network/manager.py:364
+#, python-format
+msgid "Disassociated %s stale fixed ip(s)"
+msgstr ""
+
+#: nova/network/manager.py:368
+msgid "setting network host"
+msgstr ""
+
+#: nova/network/manager.py:480
+msgid "network allocations"
+msgstr ""
+
+#: nova/network/manager.py:487
+#, python-format
+msgid "networks retrieved for instance: |%(networks_list)s|"
+msgstr ""
+
+#: nova/network/manager.py:535
+msgid "network deallocation for instance"
+msgstr ""
+
+#: nova/network/manager.py:801
+#, python-format
+msgid ""
+"instance-dns-zone is |%(domain)s|, which is in availability zone "
+"|%(zone)s|. Instance is in zone |%(zone2)s|. No DNS record will be "
+"created."
+msgstr ""
+
+#: nova/network/manager.py:827
+#, python-format
+msgid "Quota exceeded for %(pid)s, tried to allocate fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:879
+msgid "Failed to update usages deallocating fixed IP"
+msgstr ""
+
+#: nova/network/manager.py:911
+#, python-format
+msgid "Unable to release %s because vif doesn't exist."
+msgstr ""
+
+#: nova/network/manager.py:934
+#, python-format
+msgid "Leased IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:938
+#, python-format
+msgid "IP %s leased that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:947
+#, python-format
+msgid "IP |%s| leased that isn't allocated"
+msgstr ""
+
+#: nova/network/manager.py:952
+#, python-format
+msgid "Released IP |%(address)s|"
+msgstr ""
+
+#: nova/network/manager.py:956
+#, python-format
+msgid "IP %s released that is not associated"
+msgstr ""
+
+#: nova/network/manager.py:960
+#, python-format
+msgid "IP %s released that was not leased"
+msgstr ""
+
+#: nova/network/manager.py:979
+#, python-format
+msgid "%s must be an integer"
+msgstr ""
+
+#: nova/network/manager.py:1003
+msgid "Maximum allowed length for 'label' is 255."
+msgstr ""
+
+#: nova/network/manager.py:1023
+#, python-format
+msgid ""
+"Subnet(s) too large, defaulting to /%s. To override, specify "
+"network_size flag."
+msgstr ""
+
+#: nova/network/manager.py:1105
+msgid "cidr already in use"
+msgstr ""
+
+#: nova/network/manager.py:1108
+#, python-format
+msgid "requested cidr (%(cidr)s) conflicts with existing supernet (%(super)s)"
+msgstr ""
+
+#: nova/network/manager.py:1119
+#, python-format
+msgid ""
+"requested cidr (%(cidr)s) conflicts with existing smaller cidr "
+"(%(smaller)s)"
+msgstr ""
+
+#: nova/network/manager.py:1176
+msgid "Network already exists!"
+msgstr ""
+
+#: nova/network/manager.py:1195
+#, python-format
+msgid "Network must be disassociated from project %s before delete"
+msgstr ""
+
+#: nova/network/manager.py:1795
+msgid ""
+"The sum between the number of networks and the vlan start cannot be "
+"greater than 4094"
+msgstr ""
+
+#: nova/network/manager.py:1802
+#, python-format
+msgid ""
+"The network range is not big enough to fit %(num_networks)s networks. "
+"Network size is %(network_size)s"
+msgstr ""
+
+#: nova/network/minidns.py:48
+#, python-format
+msgid "minidns file is |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:75 nova/network/minidns.py:106
+msgid "Invalid name"
+msgstr ""
+
+#: nova/network/minidns.py:78
+msgid "This driver only supports type 'a'"
+msgstr ""
+
+#: nova/network/minidns.py:122
+#, python-format
+msgid "Cannot delete entry |%s|"
+msgstr ""
+
+#: nova/network/minidns.py:201
+#, python-format
+msgid "deleted %s"
+msgstr ""
+
+#: nova/network/minidns.py:207
+#, python-format
+msgid "Cannot delete domain |%s|"
+msgstr ""
+
+#: nova/network/model.py:382
+msgid "v4 subnets are required for legacy nw_info"
+msgstr ""
+
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:154
+#, python-format
+msgid "allocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:157
+#, python-format
+msgid "empty project id for instance %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:203
+#, python-format
+msgid ""
+"Multiple security groups found matching '%s'. Use an ID to be more "
+"specific."
+msgstr ""
+
+#: nova/network/quantumv2/api.py:272
+msgid "Port not found"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:280
+#, python-format
+msgid "Fail to delete port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:320
+#, python-format
+msgid "deallocate_for_instance() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:329
+#, python-format
+msgid "Failed to delete quantum port %(portid)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:351
+#, python-format
+msgid "Failed to delete quantum port %(port_id)s "
+msgstr ""
+
+#: nova/network/quantumv2/api.py:375
+#, python-format
+msgid "get_instance_nw_info() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:407
+#, python-format
+msgid ""
+"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
+"%(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:437
+#, python-format
+msgid "Unable to update port %(portid)s with failure: %(exception)s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:447
+#, python-format
+msgid "validate_networks() for %s"
+msgstr ""
+
+#: nova/network/quantumv2/api.py:690
+#, python-format
+msgid "Multiple floating IP pools matches found for name '%s'"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:53
+#, python-format
+msgid "Quantum Error creating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
+#, python-format
+msgid "Quantum security group %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
+#, python-format
+msgid "Quantum Error: %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:147
+msgid "Quantum Error getting security groups"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:157
+msgid "Security group id should be uuid"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:191
+#, python-format
+msgid "Quantum Error getting security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
+msgid "Quantum Error:"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:248
+#, python-format
+msgid "Quantum Error unable to delete %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:259
+#, python-format
+msgid "Quantum security group rule %s not found"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:376
+#, python-format
+msgid ""
+"Cannot add security group %(name)s to %(instance)s since the port "
+"%(port_id)s does not meet security requirements"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
+#, python-format
+msgid "Adding security group %(security_group_id)s to port %(port_id)s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:446
+#, python-format
+msgid ""
+"Security group %(security_group_name)s not assocaited with the instance "
+"%(instance)s"
+msgstr ""
+
+#: nova/network/security_group/security_group_base.py:137
+#, python-format
+msgid "This rule already exists in group %s"
+msgstr ""
+
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
+#: nova/openstack/common/excutils.py:48
+#, python-format
+msgid "Original exception being dropped: %s"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:102
+#, python-format
+msgid "Could not release the acquired lock `%s`"
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:188
+#, python-format
+msgid "Got semaphore \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:199
+#, python-format
+msgid "Attempting to grab file lock \"%(lock)s\" for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:226
+#, python-format
+msgid "Got file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/lockutils.py:234
+#, python-format
+msgid "Released file lock \"%(lock)s\" at %(path)s for method \"%(method)s\"..."
+msgstr ""
+
+#: nova/openstack/common/log.py:244
+#, python-format
+msgid "Deprecated: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:336
+#, python-format
+msgid "Error loading logging config %(log_config)s: %(err_msg)s"
+msgstr ""
+
+#: nova/openstack/common/log.py:386
+#, python-format
+msgid "syslog facility must be one of: %s"
+msgstr ""
+
+#: nova/openstack/common/log.py:555
+#, python-format
+msgid "Fatal call to deprecated config: %(msg)s"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:84
+#, python-format
+msgid "task run outlasted interval by %s sec"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:91
+msgid "in fixed duration looping call"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:131
+#, python-format
+msgid "Dynamic looping call sleeping for %.02f seconds"
+msgstr ""
+
+#: nova/openstack/common/loopingcall.py:138
+msgid "in dynamic looping call"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:41
+#, python-format
+msgid "Unexpected argument for periodic task creation: %(arg)s."
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:132
+#, python-format
+msgid "Skipping periodic task %(task)s because its interval is negative"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:137
+#, python-format
+msgid "Skipping periodic task %(task)s because it is disabled"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:175
+#, python-format
+msgid "Running periodic task %(full_task_name)s"
+msgstr ""
+
+#: nova/openstack/common/periodic_task.py:183
+#, python-format
+msgid "Error during %(full_task_name)s: %(e)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:394
+#, python-format
+msgid "Failed to understand rule %(rule)s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:404
+#, python-format
+msgid "No handler for matches of kind %s"
+msgstr ""
+
+#: nova/openstack/common/policy.py:679
+#, python-format
+msgid "Failed to understand rule %(rule)r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:127
+#, python-format
+msgid "Got unknown keyword args to utils.execute: %r"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:142
+#, python-format
+msgid "Running cmd (subprocess): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:167
+#: nova/openstack/common/processutils.py:240 nova/virt/powervm/common.py:117
+#, python-format
+msgid "Result was %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:179
+#, python-format
+msgid "%r failed. Retrying."
+msgstr ""
+
+#: nova/openstack/common/processutils.py:219
+#, python-format
+msgid "Running cmd (SSH): %s"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:221
+msgid "Environment not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/processutils.py:225
+msgid "process_input not supported over SSH"
+msgstr ""
+
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
+#: nova/openstack/common/strutils.py:72
+#, python-format
+msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:462
+msgid "DB exception wrapped."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:513
+#, python-format
+msgid "Got mysql server has gone away: %s"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/session.py:585
+#, python-format
+msgid "SQL connection failed. %s attempts left."
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:72
+msgid "Id not in sort_keys; is sort_keys unique?"
+msgstr ""
+
+#: nova/openstack/common/db/sqlalchemy/utils.py:120
+msgid "Unknown sort direction, must be 'desc' or 'asc'"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:125
+#, python-format
+msgid "%s not in valid priorities"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:141
+#, python-format
+msgid ""
+"Problem '%(e)s' attempting to send to notification system. "
+"Payload=%(payload)s"
+msgstr ""
+
+#: nova/openstack/common/notifier/api.py:171
+#, python-format
+msgid "Failed to load notifier %s. These notifications will not be sent."
+msgstr ""
+
+#: nova/openstack/common/notifier/rabbit_notifier.py:27
+msgid "The rabbit_notifier is now deprecated. Please use rpc_notifier instead."
+msgstr ""
+
+#: nova/openstack/common/notifier/rpc_notifier.py:45
+#: nova/openstack/common/notifier/rpc_notifier2.py:51
+#, python-format
+msgid "Could not send notification to %(topic)s. Payload=%(message)s"
+msgstr ""
+
+#: nova/openstack/common/plugin/pluginmanager.py:66
+#, python-format
+msgid "Failed to load plugin %(plug)s: %(exc)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/__init__.py:106
+#, 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 ""
+
+#: nova/openstack/common/rpc/amqp.py:75
+msgid "Pool creating new connection"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:200
+#, python-format
+msgid "no calling threads waiting for msg_id : %s, message : %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:208
+#, python-format
+msgid ""
+"Number of call waiters is greater than warning threshhold: %d. There "
+"could be a MulticallProxyWaiter leak."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:291
+#, python-format
+msgid "unpacked context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:337
+#, python-format
+msgid "UNIQUE_ID is %s."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:406
+#, python-format
+msgid "received %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:414
+#, python-format
+msgid "no method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:415
+#, python-format
+msgid "No method for message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:443
+#: nova/openstack/common/rpc/impl_zmq.py:286
+#, python-format
+msgid "Expected exception during message handling (%s)"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:451
+#: nova/openstack/common/rpc/impl_zmq.py:292
+msgid "Exception during message handling"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:586
+#, python-format
+msgid "Making synchronous call on %s ..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:589
+#, python-format
+msgid "MSG_ID is %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:623
+#, python-format
+msgid "Making asynchronous cast on %s..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:632
+msgid "Making asynchronous fanout cast..."
+msgstr ""
+
+#: nova/openstack/common/rpc/amqp.py:660
+#, python-format
+msgid "Sending %(event_type)s on %(topic)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:75
+msgid "An unknown RPC related exception occurred."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:105
+#, python-format
+msgid ""
+"Remote error: %(exc_type)s %(value)s\n"
+"%(traceback)s."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:122
+#, python-format
+msgid ""
+"Timeout while waiting on RPC response - topic: \"%(topic)s\", RPC method:"
+" \"%(method)s\" info: \"%(info)s\""
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:138
+#: nova/openstack/common/rpc/common.py:139
+#: nova/openstack/common/rpc/common.py:140
+msgid "<unknown>"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:144
+#, python-format
+msgid "Found duplicate message(%(msg_id)s). Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:148
+msgid "Invalid reuse of an RPC connection."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:152
+#, python-format
+msgid "Specified RPC version, %(version)s, not supported by this endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:157
+#, python-format
+msgid ""
+"Specified RPC envelope version, %(version)s, not supported by this "
+"endpoint."
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
+#, python-format
+msgid "Failed to sanitize %(item)s. Key error %(err)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:307
+#, python-format
+msgid "Returning exception %s to caller"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:169
+#: nova/openstack/common/rpc/impl_qpid.py:153
+msgid "Failed to process message... skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:480
+#, python-format
+msgid "Reconnecting to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:502
+#, python-format
+msgid "Connected to AMQP server on %(hostname)s:%(port)d"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:539
+#, python-format
+msgid ""
+"Unable to connect to AMQP server on %(hostname)s:%(port)d after "
+"%(max_retries)d tries: %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:555
+#, python-format
+msgid ""
+"AMQP server on %(hostname)s:%(port)d is unreachable: %(err_str)s. Trying "
+"again in %(sleep_time)d seconds."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:609
+#: nova/openstack/common/rpc/impl_qpid.py:457
+#, python-format
+msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:627
+#: nova/openstack/common/rpc/impl_qpid.py:472
+#, python-format
+msgid "Timed out waiting for RPC response: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:631
+#: nova/openstack/common/rpc/impl_qpid.py:476
+#, python-format
+msgid "Failed to consume message from queue: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_kombu.py:670
+#: nova/openstack/common/rpc/impl_qpid.py:511
+#, python-format
+msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:399
+#, python-format
+msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:405
+#, python-format
+msgid "Connected to AMQP server on %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:418
+msgid "Re-established AMQP queues"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_qpid.py:484
+msgid "Error processing message. Skipping it."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:97
+msgid "JSON serialization failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:104
+#, python-format
+msgid "Deserializing: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:140
+#, python-format
+msgid "Connecting to %(addr)s with %(type)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:141
+#, python-format
+msgid "-> Subscribed to %(subscribe)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:142
+#, python-format
+msgid "-> bind: %(bind)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:150
+msgid "Could not open socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:162
+#, python-format
+msgid "Subscribing to %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:204
+msgid "You cannot recv on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:209
+msgid "You cannot send on this socket."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:273
+#, python-format
+msgid "Running func with context: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:311
+msgid "Sending reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:345
+msgid "RPC message did not include method."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:380
+msgid "Registering reactor"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:392
+msgid "In reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:407
+msgid "Out reactor registered"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:411
+msgid "Consuming socket"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:453
+#, python-format
+msgid "CONSUMER GOT %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:465
+#, python-format
+msgid "Creating proxy for topic: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:471
+msgid "Topic contained dangerous characters."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:496
+#, python-format
+msgid "ROUTER RELAY-OUT SUCCEEDED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:505
+msgid "Topic socket file creation failed."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:510
+#, python-format
+msgid "ROUTER RELAY-OUT QUEUED %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:513
+#, python-format
+msgid "Local per-topic backlog buffer full for topic %(topic)s. Dropping message."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:532
+#, python-format
+msgid "Could not create IPC directory %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:542
+msgid "Could not create ZeroMQ receiver daemon. Socket may already be in use."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:576
+#, python-format
+msgid "CONSUMER RECEIVED DATA: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:578
+#, python-format
+msgid "ROUTER RELAY-OUT %(data)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:600
+msgid "ZMQ Envelope version unsupported or unknown."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:628
+msgid "Skipping topic registration. Already registered."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:635
+#, python-format
+msgid "Consumer is a zmq.%s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:687
+msgid "Creating payload"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:700
+msgid "Creating queue socket for reply waiter"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:713
+msgid "Sending cast"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:716
+msgid "Cast sent; Waiting reply"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:719
+#, python-format
+msgid "Received message: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:720
+msgid "Unpacking response"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:729
+msgid "Unsupported or unknown ZMQ envelope returned."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:736
+msgid "RPC Message Invalid."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:760
+#, python-format
+msgid "%(msg)s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:763
+#, python-format
+msgid "Sending message(s) to: %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:767
+msgid "No matchmaker results. Not casting."
+msgstr ""
+
+#: nova/openstack/common/rpc/impl_zmq.py:770
+msgid "No match from matchmaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:53
+msgid "Match not found by MatchMaker."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:89
+msgid "Matchmaker does not implement registration or heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:239
+#, python-format
+msgid "Matchmaker unregistered: %s, %s"
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:250
+msgid "Register before starting heartbeat."
+msgstr ""
+
+#: nova/openstack/common/rpc/matchmaker.py:343
+#: nova/openstack/common/rpc/matchmaker.py:361
+#, python-format
+msgid "No key defining hosts for topic '%s', see ringfile"
+msgstr ""
+
+#: nova/scheduler/chance.py:51
+msgid "Is the appropriate service running?"
+msgstr ""
+
+#: nova/scheduler/chance.py:56
+msgid "Could not find another compute"
+msgstr ""
+
+#: nova/scheduler/driver.py:61
+msgid "Exception during scheduler.run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:63 nova/scheduler/manager.py:222
+#, python-format
+msgid "Setting instance to %(state)s state."
+msgstr ""
+
+#: nova/scheduler/driver.py:156
+msgid "Driver must implement schedule_prep_resize"
+msgstr ""
+
+#: nova/scheduler/driver.py:164
+msgid "Driver must implement schedule_run_instance"
+msgstr ""
+
+#: nova/scheduler/driver.py:169
+msgid "Driver must implement select_hosts"
+msgstr ""
+
+#: nova/scheduler/driver.py:339
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s to %(dest)s: Lack of "
+"memory(host:%(avail)s <= instance:%(mem_inst)s)"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:73
+#, python-format
+msgid ""
+"Attempting to build %(num_instances)d instance(s) uuids: "
+"%(instance_uuids)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:77
+#, python-format
+msgid "Request Spec: %s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:97
+#, python-format
+msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:239
+msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:256
+#, python-format
+msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:288
+#, python-format
+msgid ""
+"Exceeded max scheduling attempts %(max_attempts)d for instance "
+"%(instance_uuid)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:356
+#, python-format
+msgid "Filtered %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:361
+#, python-format
+msgid "Weighed %(hosts)s"
+msgstr ""
+
+#: nova/scheduler/filter_scheduler.py:403
+#, python-format
+msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:308
+#, python-format
+msgid "Host filter ignoring hosts: %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:320
+#, python-format
+msgid "Host filter forcing available hosts to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:323
+#, python-format
+msgid "No hosts matched due to not matching 'force_hosts' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:336
+#, python-format
+msgid "Host filter forcing available nodes to %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:339
+#, python-format
+msgid "No nodes matched due to not matching 'force_nodes' value of '%s'"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:379
+#, python-format
+msgid "Ignoring %(service_name)s service update from %(host)s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:384
+#, python-format
+msgid "Received %(service_name)s service update from %(state_key)s."
+msgstr ""
+
+#: nova/scheduler/host_manager.py:403
+#: nova/scheduler/filters/trusted_filter.py:214
+#, python-format
+msgid "No service for compute ID %s"
+msgstr ""
+
+#: nova/scheduler/host_manager.py:425
+#, python-format
+msgid "Removing dead compute node %(host)s:%(node)s from scheduler"
+msgstr ""
+
+#: nova/scheduler/manager.py:208
+#, python-format
+msgid "Failed to schedule_%(method)s: %(ex)s"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:71
+#, python-format
+msgid "Could not stat scheduler options file %(filename)s: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/scheduler_options.py:79
+#, python-format
+msgid "Could not decode scheduler options: '%(e)s'"
+msgstr ""
+
+#: nova/scheduler/filters/affinity_filter.py:95
+#, python-format
+msgid "Group affinity: %(host)s in %(configured)s"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
+#, python-format
+msgid "%(host_state)s fails tenant id on aggregate"
+msgstr ""
+
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:40
+#, python-format
+msgid "%(host_state)s is disabled or has not been heard from in a while"
+msgstr ""
+
+#: nova/scheduler/filters/compute_filter.py:44
+#, python-format
+msgid "%(host_state)s is disabled via capabilities"
+msgstr ""
+
+#: nova/scheduler/filters/core_filter.py:44
+msgid "VCPUs not set; assuming CPU collection broken"
+msgstr ""
+
+#: nova/scheduler/filters/disk_filter.py:47
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_disk)s MB usable disk, it only "
+"has %(usable_disk_mb)s MB usable disk."
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:48
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s, but no corresponding "
+"capabilities are advertised by the compute node"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:61
+#, python-format
+msgid ""
+"Instance properties %(image_props)s are satisfied by compute host "
+"capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:68
+#, python-format
+msgid ""
+"Instance contains properties %(image_props)s that are not provided by the"
+" compute node capabilities %(capabilities)s"
+msgstr ""
+
+#: nova/scheduler/filters/image_props_filter.py:86
+#, python-format
+msgid "%(host_state)s does not support requested instance_properties"
+msgstr ""
+
+#: nova/scheduler/filters/io_ops_filter.py:42
+#, python-format
+msgid ""
+"%(host_state)s fails I/O ops check: Max IOs per host is set to "
+"%(max_io_ops)s"
+msgstr ""
+
+#: nova/scheduler/filters/num_instances_filter.py:39
+#, python-format
+msgid ""
+"%(host_state)s fails num_instances check: Max instances per host is set "
+"to %(max_instances)s"
+msgstr ""
+
+#: nova/scheduler/filters/ram_filter.py:46
+#, python-format
+msgid ""
+"%(host_state)s does not have %(requested_ram)s MB usable ram, it only has"
+" %(usable_ram)s MB usable ram."
+msgstr ""
+
+#: nova/scheduler/filters/retry_filter.py:41
+#, python-format
+msgid "Host %(host)s %(pass_msg)s. Previously tried hosts: %(hosts)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:60
+#, python-format
+msgid "ServiceGroup driver defined as an instance of %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:66
+#, python-format
+msgid "unknown ServiceGroup driver name: %s"
+msgstr ""
+
+#: nova/servicegroup/api.py:83
+#, python-format
+msgid ""
+"Join new ServiceGroup member %(member_id)s to the %(group_id)s group, "
+"service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/api.py:90
+#, python-format
+msgid "Check if the given member [%s] is part of the ServiceGroup, is up"
+msgstr ""
+
+#: nova/servicegroup/api.py:99
+#, python-format
+msgid ""
+"Explicitly remove the given member %(member_id)s from the%(group_id)s "
+"group monitoring"
+msgstr ""
+
+#: nova/servicegroup/api.py:106
+#, python-format
+msgid "Returns ALL members of the [%s] ServiceGroup"
+msgstr ""
+
+#: nova/servicegroup/api.py:114
+#, python-format
+msgid "Returns one member of the [%s] group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:41
+#, python-format
+msgid ""
+"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
+" group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:45
+msgid "service is a mandatory argument for DB based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:72
+#, python-format
+msgid "DB_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
+msgid "Recovered model server connection!"
+msgstr ""
+
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
+msgid "model server went away"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:43
+msgid "memcached_servers not defined"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:51
+#, python-format
+msgid ""
+"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
+"%(group_id)s group, service = %(service)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:56
+msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
+msgstr ""
+
+#: nova/servicegroup/drivers/mc.py:74
+#, python-format
+msgid "Memcached_Driver: get_all members of the %s group"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:80
+#, python-format
+msgid ""
+"ZooKeeperDriver: join new member %(id)s to the %(gr)s group, "
+"service=%(sr)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:90
+msgid ""
+"Unable to join. It is possible that either another node exists with the "
+"same name, or this node just restarted. We will try again in a short "
+"while to make sure."
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:101
+#, python-format
+msgid "ZooKeeperDriver.leave: %(member)s from group %(group)s"
+msgstr ""
+
+#: nova/servicegroup/drivers/zk.py:109
+#, python-format
+msgid "ZooKeeperDriver.leave: %(id)s has not joined to the %(gr)s group"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:71
+#, python-format
+msgid "Trying (%(tries)s) to remove device %(device)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:101
+#, python-format
+msgid "Multipath call failed exit (%(code)s)"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:122
+#, python-format
+msgid "Couldn't find multipath device %(line)s"
+msgstr ""
+
+#: nova/storage/linuxscsi.py:126
+#, python-format
+msgid "Found multipath device = %(mdev)s"
+msgstr ""
+
+#: nova/tests/fake_ldap.py:34
+msgid "Attempted to instantiate singleton"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:71
+#, python-format
+msgid "Faking execution of cmd (subprocess): %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:79
+#, python-format
+msgid "Faked command matched %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:95
+#, python-format
+msgid "Faked command raised an exception %s"
+msgstr ""
+
+#: nova/tests/fake_processutils.py:100
+#, python-format
+msgid "Reply to faked command is stdout='%(stdout)s' stderr='%(stderr)s'"
+msgstr ""
+
+#: nova/tests/fake_volume.py:188
+msgid "status must be available"
+msgstr ""
+
+#: nova/tests/fake_volume.py:192 nova/volume/cinder.py:238
+msgid "already attached"
+msgstr ""
+
+#: nova/tests/fake_volume.py:196 nova/volume/cinder.py:242
+msgid "Instance and volume not in same availability_zone"
+msgstr ""
+
+#: nova/tests/fake_volume.py:201 nova/volume/cinder.py:248
+msgid "already detached"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:79
+msgid "200 Role Match"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:81
+msgid "200 No Roles"
+msgstr ""
+
+#: nova/tests/api/test_auth.py:84
+msgid "unexpected role header"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
+msgid ""
+"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
+"instances"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
+msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
+msgstr ""
+
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
+msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1099
+#: nova/tests/compute/test_compute.py:1117
+#: nova/tests/compute/test_compute.py:1168
+#: nova/tests/compute/test_compute.py:1195
+#: nova/tests/compute/test_compute.py:1241
+#: nova/tests/compute/test_compute.py:4032
+#, python-format
+msgid "Running instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1105
+#: nova/tests/compute/test_compute.py:1140
+#: nova/tests/compute/test_compute.py:1183
+#: nova/tests/compute/test_compute.py:1213
+#, python-format
+msgid "After terminating instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:1723
+msgid "Internal error"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4043
+#, python-format
+msgid "After force-killing instances: %s"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:4543
+msgid "wrong host/node"
+msgstr ""
+
+#: nova/tests/compute/test_compute.py:9144
+msgid "spawn error"
+msgstr ""
+
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
+#, python-format
+msgid "%(result_str)s: %(result)s is not a dict."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:195
+#, python-format
+msgid ""
+"Dictionary key mismatch:\n"
+"Extra key(s) in template:\n"
+"%(ex_delta)s\n"
+"Extra key(s) in %(result_str)s:\n"
+"%(res_delta)s\n"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:206
+#, python-format
+msgid "%(result_str)s: %(result)s is not a list."
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:225
+msgid "Extra list items in template:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:229
+#, python-format
+msgid "Extra list items in %(result_str)s:"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
+#, python-format
+msgid ""
+"Values do not match:\n"
+"Template: %(expected)s\n"
+"%(result_str)s: %(result)s"
+msgstr ""
+
+#: nova/tests/integrated/test_login.py:31
+#, python-format
+msgid "flavor: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:38
+#, python-format
+msgid ""
+"%(message)s\n"
+"Status Code: %(_status)s\n"
+"Body: %(_body)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:47
+msgid "Authentication error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:55
+msgid "Authorization error"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:63
+msgid "Item not found"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:105
+#, python-format
+msgid "Doing %(method)s on %(relative_url)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:107
+#, python-format
+msgid "Body: %s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:125
+#, python-format
+msgid "%(auth_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:155
+#, python-format
+msgid "%(relative_uri)s => code %(http_status)s"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:165
+msgid "Unexpected status code"
+msgstr ""
+
+#: nova/tests/integrated/api/client.py:172
+#, python-format
+msgid "Decoding JSON: %s"
+msgstr ""
+
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
+#: nova/virt/configdrive.py:97
+#, python-format
+msgid "Added %(filepath)s to config drive"
+msgstr ""
+
+#: nova/virt/driver.py:942
+msgid "Event must be an instance of nova.virt.event.Event"
+msgstr ""
+
+#: nova/virt/driver.py:948
+#, python-format
+msgid "Exception dispatching event %(event)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/driver.py:970
+msgid "Compute driver option required, but not specified"
+msgstr ""
+
+#: nova/virt/driver.py:973
+#, python-format
+msgid "Loading compute driver '%s'"
+msgstr ""
+
+#: nova/virt/driver.py:980
+msgid "Unable to load the virtualization driver"
+msgstr ""
+
+#: nova/virt/fake.py:212
+#, python-format
+msgid "Key '%(key)s' not in instances '%(inst)s'"
+msgstr ""
+
+#: nova/virt/firewall.py:184 nova/virt/libvirt/firewall.py:305
+msgid "Attempted to unfilter instance which is not filtered"
+msgstr ""
+
+#: nova/virt/firewall.py:195
+msgid "Filters added to instance"
+msgstr ""
+
+#: nova/virt/firewall.py:197
+msgid "Provider Firewall Rules refreshed"
+msgstr ""
+
+#: nova/virt/firewall.py:377
+#, python-format
+msgid "Adding security group rule: %r"
+msgstr ""
+
+#: nova/virt/firewall.py:511 nova/virt/xenapi/firewall.py:74
+#, python-format
+msgid "Adding provider rule: %s"
+msgstr ""
+
+#: nova/virt/images.py:113
+msgid "Snapshot list encountered but no header found!"
+msgstr ""
+
+#: nova/virt/images.py:215
+msgid "'qemu-img info' parsing failed."
+msgstr ""
+
+#: nova/virt/images.py:221
+#, python-format
+msgid "fmt=%(fmt)s backed by: %(backing_file)s"
+msgstr ""
+
+#: nova/virt/images.py:233
+#, python-format
+msgid "Converted to raw, but format is now %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:90
+#, python-format
+msgid "Request for baremetal node %s sent to wrong service host"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:143
+msgid "cpu_arch is not found in instance_type_extra_specs"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:185
+#, python-format
+msgid "Baremetal node id not supplied to driver for %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:257
+#, python-format
+msgid "Error deploying instance %(instance)s on baremetal node %(node)s."
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:284
+#, python-format
+msgid "Baremetal power manager failed to restart node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:295
+#, python-format
+msgid "Destroy called on non-existing instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:313
+#, python-format
+msgid "Error from baremetal driver during destroy: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:318
+#, python-format
+msgid "Error while recording destroy failure in baremetal database: %s"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:328
+#, python-format
+msgid "Baremetal power manager failed to stop node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/driver.py:340
+#, python-format
+msgid "Baremetal power manager failed to start node for instance %r"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:86
+#, python-format
+msgid "pid file %s does not contain any pid"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:109
+msgid "Node id not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:112
+msgid "Address not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:115
+msgid "User not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:118
+msgid "Password not supplied to IPMI"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:135
+#, python-format
+msgid "ipmitool stdout: '%(out)s', stderr: '%(err)s'"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:157
+msgid "IPMI power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:179
+msgid "IPMI power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:189
+msgid "IPMI set next bootdev failed"
+msgstr ""
+
+#: nova/virt/baremetal/ipmi.py:201 nova/virt/baremetal/tilera_pdu.py:153
+#, python-format
+msgid "Activate node called, but node %s is already active"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:92
+#, python-format
+msgid "Building PXE config for deployment %s."
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:231
+#, python-format
+msgid ""
+"Can not activate PXE bootloader. The following boot parameters were not "
+"passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
+#, python-format
+msgid "Fetching kernel and ramdisk for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
+#, python-format
+msgid "Fetching image %(ami)s for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
+#, python-format
+msgid "Injecting files into image for instance %(name)s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
+#, python-format
+msgid "Node associated with another instance while waiting for deploy of %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:466
+#, python-format
+msgid "PXE deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:471
+#, python-format
+msgid "PXE deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:475
+#, python-format
+msgid "PXE deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
+#, python-format
+msgid "Baremetal node deleted while waiting for deployment of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/pxe.py:482
+#, python-format
+msgid "Timeout reached while waiting for PXE deploy of instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:145
+#, python-format
+msgid ""
+"Can not activate Tilera bootloader. The following boot parameters were "
+"not passed to baremetal driver: %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:362
+#, python-format
+msgid "Tilera deploy started for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:368
+#, python-format
+msgid "Tilera deploy completed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:376
+msgid "Node is unknown error state."
+msgstr ""
+
+#: nova/virt/baremetal/tilera.py:379
+#, python-format
+msgid "Tilera deploy failed for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:83
+msgid "Node id not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:86
+msgid "Address not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:89
+msgid "User not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:92
+msgid "Password not supplied to PDU"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:117
+msgid "PDU failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:134
+msgid "PDU power on failed"
+msgstr ""
+
+#: nova/virt/baremetal/tilera_pdu.py:147
+msgid "PDU power off failed"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:41
+#, python-format
+msgid "Failed to inject data into image %(image)s. Error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:52
+#, python-format
+msgid "Failed to unlink %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:60
+#, python-format
+msgid "Failed to remove dir %(path)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/utils.py:75
+#, python-format
+msgid "Failed to create symlink from %(source)s to %(link)s, error: %(e)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:37
+#, python-format
+msgid "plug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:50
+#, python-format
+msgid "pif:%(id)s is plugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:57
+#, python-format
+msgid ""
+"Baremetal node: %(id)s has no available physical interface for virtual "
+"interface %(vif_uuid)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:63
+#, python-format
+msgid "unplug: instance_uuid=%(uuid)s vif=%(vif)s"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:71
+#, python-format
+msgid "pif:%(id)s is unplugged (vif_uuid=%(vif_uuid)s)"
+msgstr ""
+
+#: nova/virt/baremetal/vif_driver.py:75
+#, python-format
+msgid "no pif for vif_uuid=%s"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:111
+msgid "virtual_power_ssh_host not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:115
+msgid "virtual_power_host_user not defined. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/virtual_power_driver.py:121
+msgid "virtual_power_host_pass/key not set. Can not Start"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:122
+#, python-format
+msgid "baremetal driver was unable to delete tid %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:186
+#, python-format
+msgid "Could not determine iscsi initiator name for instance %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:227
+#, python-format
+msgid "No fixed PXE IP is associated to %s"
+msgstr ""
+
+#: nova/virt/baremetal/volume_driver.py:259
+#, python-format
+msgid "detach volume could not find tid for %s"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:199
+msgid "instance_uuid must be supplied to bm_node_associate_and_update"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:211
+#, python-format
+msgid "Failed to associate instance %(i_uuid)s to baremetal node %(n_uuid)s."
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:329
+msgid "No more PXE IPs available"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:351
+#: nova/virt/baremetal/db/sqlalchemy/api.py:393
+#, python-format
+msgid "Baremetal interface %s not found"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:403
+#, python-format
+msgid "Baremetal interface %s already in use"
+msgstr ""
+
+#: nova/virt/baremetal/db/sqlalchemy/api.py:417
+#, python-format
+msgid "Baremetal virtual interface %s not found"
+msgstr ""
+
+#: nova/virt/disk/api.py:133
+#, python-format
+msgid "Checking if we can resize image %(image)s. size=%(size)s, CoW=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:140
+#, python-format
+msgid "Cannot resize filesystem %s to a smaller size."
+msgstr ""
+
+#: nova/virt/disk/api.py:151
+#, python-format
+msgid "Unable to mount image %(image)s with error %(error)s. Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:161
+#, python-format
+msgid ""
+"Unable to determine label for image %(image)s with error %(errror)s. "
+"Cannot resize."
+msgstr ""
+
+#: nova/virt/disk/api.py:228
+msgid "image already mounted"
+msgstr ""
+
+#: nova/virt/disk/api.py:284
+#, python-format
+msgid ""
+"Inject data image=%(image)s key=%(key)s net=%(net)s metadata=%(metadata)s"
+" admin_password=<SANITIZED> files=%(files)s partition=%(partition)s "
+"use_cow=%(use_cow)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:302
+#, python-format
+msgid "Ignoring error injecting data into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:321
+#, python-format
+msgid ""
+"Failed to mount container filesystem '%(image)s' on '%(target)s': "
+"%(errors)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:338
+#, python-format
+msgid "Failed to teardown ntainer filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:351
+#, python-format
+msgid "Failed to umount container filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/api.py:376
+#, python-format
+msgid "Ignoring error injecting %(inject)s into image (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/api.py:388
+#, python-format
+msgid "Inject file fs=%(fs)s path=%(path)s append=%(append)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:397
+#, python-format
+msgid "Inject metadata fs=%(fs)s metadata=%(metadata)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:438
+#, python-format
+msgid "Inject key fs=%(fs)s key=%(key)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:466
+#, python-format
+msgid "Inject key fs=%(fs)s net=%(net)s"
+msgstr ""
+
+#: nova/virt/disk/api.py:491
+#, python-format
+msgid "Inject admin password fs=%(fs)s admin_passwd=<SANITIZED>"
+msgstr ""
+
+#: nova/virt/disk/api.py:535
+msgid "Not implemented on Windows"
+msgstr ""
+
+#: nova/virt/disk/api.py:564
+#, python-format
+msgid "User %(username)s not found in password file."
+msgstr ""
+
+#: nova/virt/disk/api.py:580
+#, python-format
+msgid "User %(username)s not found in shadow file."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:41
+#, python-format
+msgid ""
+"Instance for format imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s imgfmt=%(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:45 nova/virt/disk/mount/api.py:61
+#: nova/virt/disk/vfs/localfs.py:67
+msgid "Using LoopMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:50 nova/virt/disk/mount/api.py:66
+#: nova/virt/disk/vfs/localfs.py:72
+msgid "Using NbdMount"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:57
+#, python-format
+msgid ""
+"Instance for device imgfile=%(imgfile)s mountdir=%(mountdir)s "
+"partition=%(partition)s device=%(device)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:117
+msgid "Device allocation failed. Will retry in 2 seconds."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:120
+msgid "Device allocation failed after repeated retries."
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:135
+#, python-format
+msgid "Map dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:140
+#, python-format
+msgid "partition search unsupported with %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:156
+#, python-format
+msgid "partition %s not found"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:157
+#, python-format
+msgid "Failed to map partitions: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:179
+#, python-format
+msgid "Unmap dev %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:187
+#, python-format
+msgid "Mount %(dev)s on %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:192
+#, python-format
+msgid "Failed to mount filesystem: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:203
+#, python-format
+msgid "Umount %s"
+msgstr ""
+
+#: nova/virt/disk/mount/api.py:214
+msgid "Fail to mount, tearing back down"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:33
+#, python-format
+msgid "Could not attach image to loopback: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:34
+#, python-format
+msgid "Loop mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:40
+#, python-format
+msgid "Got loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/loop.py:58
+#, python-format
+msgid "Release loop device %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:55 nova/virt/disk/mount/nbd.py:69
+msgid "No free nbd devices"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:60
+msgid "nbd module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:61
+msgid "nbd unavailable: module not loaded"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:86
+#, python-format
+msgid "Get nbd device %(dev)s for %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:91
+#, python-format
+msgid "qemu-nbd error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:92 nova/virt/disk/mount/nbd.py:105
+#, python-format
+msgid "NBD mount error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:104
+#, python-format
+msgid "nbd device %s did not show up"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:111
+#, python-format
+msgid "Detaching from erroneous nbd device returned error: %s"
+msgstr ""
+
+#: nova/virt/disk/mount/nbd.py:126
+#, python-format
+msgid "Release nbd device %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:27
+#, python-format
+msgid ""
+"Instance for image imgfile=%(imgfile)s imgfmt=%(imgfmt)s "
+"partition=%(partition)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:32
+msgid "Trying to import guestfs"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:39
+msgid "Using primary VFSGuestFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/api.py:44
+msgid "Falling back to VFSLocalFS"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:55
+#, python-format
+msgid "Mount guest OS image %(imgfile)s partition %(part)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:64
+#, python-format
+msgid "Inspecting guest OS image %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:68
+#, python-format
+msgid "No operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:72
+#, python-format
+msgid "Multi-boot OS %(roots)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:74
+#, python-format
+msgid "Multi-boot operating system found in %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:80
+#, python-format
+msgid "Inspecting guest OS root filesystem %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:85
+#, python-format
+msgid "No mount points found in %(root)s of %(imgfile)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:90
+#, python-format
+msgid "Mounting %(dev)s at %(dir)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:95
+#, python-format
+msgid "Setting up appliance for %(imgfile)s %(imgfmt)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:113
+#, python-format
+msgid "Error mounting %(imgfile)s with libguestfs (%(e)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:120
+msgid "Tearing down appliance"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:126
+#, python-format
+msgid "Failed to close augeas %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:134
+#, python-format
+msgid "Failed to shutdown appliance %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:142
+#, python-format
+msgid "Failed to close guest handle %s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:154 nova/virt/disk/vfs/localfs.py:102
+#, python-format
+msgid "Make directory path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:159 nova/virt/disk/vfs/localfs.py:107
+#, python-format
+msgid "Append file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:164 nova/virt/disk/vfs/localfs.py:116
+#, python-format
+msgid "Replace file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:169 nova/virt/disk/vfs/localfs.py:125
+#, python-format
+msgid "Read file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:174 nova/virt/disk/vfs/localfs.py:131
+#, python-format
+msgid "Has file path=%(path)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:183
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:188
+#, python-format
+msgid "Set ownership path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/guestfs.py:201
+#, python-format
+msgid "chown uid=%(uid)d gid=%(gid)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:46
+#, python-format
+msgid "File path %s not valid"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:80
+#, python-format
+msgid "Failed to mount image %(ex)s)"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:90
+#, python-format
+msgid "Failed to unmount %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:96
+#, python-format
+msgid "Failed to remove %(imgdir)s: %(ex)s"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:139
+#, python-format
+msgid "Set permissions path=%(path)s mode=%(mode)o"
+msgstr ""
+
+#: nova/virt/disk/vfs/localfs.py:144
+#, python-format
+msgid "Set permissions path=%(path)s user=%(user)s group=%(group)s"
+msgstr ""
+
+#: nova/virt/hyperv/basevolumeutils.py:71
+msgid "The ISCSI initiator name can't be found. Choosing the default one"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:150
+msgid "plug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:153
+msgid "unplug_vifs called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:156
+msgid "ensure_filtering_rules_for_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:160
+msgid "unfilter_instance called"
+msgstr ""
+
+#: nova/virt/hyperv/driver.py:191
+msgid "get_console_output called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:93
+#, python-format
+msgid "Windows version: %s "
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:105
+msgid "get_available_resource called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
+#: nova/virt/xenapi/host.py:148
+msgid "Updating host stats"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:159
+msgid "get_host_stats called"
+msgstr ""
+
+#: nova/virt/hyperv/hostops.py:174
+#, python-format
+msgid "Host IP address is: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:49
+#, python-format
+msgid "The image is not a valid VHD: %s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:69
+#, python-format
+msgid ""
+"Cannot resize the image to a size smaller than the VHD max. internal "
+"size: %(vhd_size)s. Requested disk size: %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:84
+#, python-format
+msgid "Copying VHD %(vhd_path)s to %(resized_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/imagecache.py:87
+#, python-format
+msgid "Resizing VHD %(resized_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:45
+msgid "live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:55
+#, python-format
+msgid "Calling live migration recover_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:59
+#, python-format
+msgid "Calling live migration post_method for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:65
+msgid "pre_live_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:78
+msgid "post_live_migration_at_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:85
+msgid "check_can_live_migrate_destination called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:90
+msgid "check_can_live_migrate_destination_cleanup called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationops.py:94
+msgid "check_can_live_migrate_source called"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:43
+#, python-format
+msgid "Live migration is not supported on target host \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:46
+#, python-format
+msgid "Target live migration host \"%s\" is unreachable"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:49
+#, python-format
+msgid "Live migration failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:61
+msgid "Live migration is not enabled on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:64
+msgid "Live migration networks are not configured on this host"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:70 nova/virt/hyperv/vmutils.py:103
+#, python-format
+msgid "VM not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:72 nova/virt/hyperv/vmutils.py:112
+#, python-format
+msgid "Duplicate VM name found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:77
+#, python-format
+msgid "Destroying existing remote planned VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:99
+#, python-format
+msgid "Creating remote planned VM for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:156
+#, python-format
+msgid ""
+"Replacing host resource %(old_disk_path)s with %(new_disk_path)s on "
+"planned VM %(vm_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:163
+#, python-format
+msgid "Updating remote planned VM disk paths for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:199
+#, python-format
+msgid "Starting live migration for VM: %s"
+msgstr ""
+
+#: nova/virt/hyperv/livemigrationutils.py:208
+#, python-format
+msgid "Getting live migration networks for remote host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:50
+msgid "Migration target is the source host"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:52
+#, python-format
+msgid "Migration target host: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:73
+#, python-format
+msgid "Copying disk \"%(disk_file)s\" to \"%(dest_path)s\""
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:96
+msgid "Cannot cleanup migration files"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:103
+#, python-format
+msgid ""
+"Cannot resize the root disk to a smaller size. Current size: "
+"%(curr_root_gb)s GB. Requested size: %(new_root_gb)s GB"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:113
+msgid "migrate_disk_and_power_off called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:133
+msgid "confirm_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:148
+msgid "finish_revert_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:167
+#, python-format
+msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:171
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:177
+#, python-format
+msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:189
+#, python-format
+msgid "Getting info for disk: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:194
+#, python-format
+msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:205
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
+"%(diff_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:214
+msgid "finish_migration called"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:223
+#, python-format
+msgid "Cannot find boot VHD file: %s"
+msgstr ""
+
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
+msgid "Cannot resize a VHD to a smaller size"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:46
+#, python-format
+msgid "vswitch \"%s\" not found"
+msgstr ""
+
+#: nova/virt/hyperv/networkutils.py:59
+#, python-format
+msgid "Failed to create vswitch port %(port_name)s on switch %(vswitch_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:71
+#, python-format
+msgid "The file copy from %(src)s to %(dest)s failed"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:92
+#, python-format
+msgid "Creating directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/pathutils.py:97 nova/virt/hyperv/snapshotops.py:116
+#, python-format
+msgid "Removing directory: %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:56
+#, python-format
+msgid "Creating snapshot for instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:65
+#, python-format
+msgid "Getting info for VHD %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:73
+#, python-format
+msgid "Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:83
+#, python-format
+msgid "Copying base disk %(src_vhd_path)s to %(dest_base_disk_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:88
+#, python-format
+msgid ""
+"Reconnecting copied base VHD %(dest_base_disk_path)s and diff VHD "
+"%(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:94
+#, python-format
+msgid "Merging base disk %(dest_base_disk_path)s and diff disk %(dest_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:99
+#, python-format
+msgid ""
+"Updating Glance image %(image_id)s with content from merged disk "
+"%(image_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:105
+#, python-format
+msgid "Snapshot image %(image_id)s updated for VM %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:109
+#, python-format
+msgid "Removing snapshot %s"
+msgstr ""
+
+#: nova/virt/hyperv/snapshotops.py:113
+#, python-format
+msgid "Failed to remove snapshot for VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vif.py:75
+#, python-format
+msgid "Creating vswitch port for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:91
+#, python-format
+msgid "VIF driver not found for network_api_class: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:100
+msgid "get_info called for instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:121
+#, python-format
+msgid ""
+"Creating differencing VHD. Parent: %(base_vhd_path)s, Target: "
+"%(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:127
+#, python-format
+msgid "Copying VHD image %(base_vhd_path)s to target: %(root_vhd_path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:139
+#, python-format
+msgid "Resizing VHD %(root_vhd_path)s to new size %(root_vhd_size)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:152
+msgid "Spawning new instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:178
+msgid "Spawn instance failed"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:203
+#, python-format
+msgid "Creating nic for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:211
+#, python-format
+msgid "Invalid config_drive_format \"%s\""
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:214
+#, python-format
+msgid "Using config drive for instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
+#, python-format
+msgid "Creating config drive at %(path)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
+#, python-format
+msgid "Creating config drive failed with error: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:271
+#, python-format
+msgid "Got request to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:284
+#, python-format
+msgid "Instance not found: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:290
+#, python-format
+msgid "Failed to destroy instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:295
+msgid "reboot instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:301
+msgid "Pause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:307
+msgid "Unpause instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:313
+msgid "Suspend instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:319
+msgid "Resume instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:325
+msgid "Power off instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:331
+msgid "Power on instance"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:338
+#, python-format
+msgid "Successfully changed state of VM %(vm_name)s to: %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmops.py:342
+#, python-format
+msgid "Failed to change vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:83
+#, python-format
+msgid "Cannot get VM summary data for: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:160
+#, python-format
+msgid "Creating VM %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:169
+#, python-format
+msgid "Setting memory for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:172
+#, python-format
+msgid "Set vCPUs for vm %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:270
+msgid "Controller not found"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:332
+#, python-format
+msgid "Successfully changed vm state of %(vm_name)s to %(req_state)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:373
+#, python-format
+msgid "Operation failed with return value: %s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:391
+#, python-format
+msgid ""
+"WMI job failed with status %(job_state)d. Error details: %(err_sum_desc)s"
+" - %(err_desc)s - Error code: %(err_code)d"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:399
+#, python-format
+msgid "WMI job failed with status %(job_state)d. Error details: %(error)s"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:403
+#, python-format
+msgid "WMI job failed with status %(job_state)d. No error description available"
+msgstr ""
+
+#: nova/virt/hyperv/vmutils.py:409
+#, python-format
+msgid "WMI job succeeded: %(desc)s, Elapsed=%(elap)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:98
+#, python-format
+msgid ""
+"Already logged in on storage target. No need to login. Portal: "
+"%(target_portal)s, IQN: %(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:102
+#, python-format
+msgid ""
+"Logging in on storage target. Portal: %(target_portal)s, IQN: "
+"%(target_iqn)s, LUN: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:115
+#, python-format
+msgid "Attach_volume: %(connection_info)s to %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:145
+#, python-format
+msgid "Attach volume failed: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:147
+#, python-format
+msgid "Unable to attach volume to instance %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:160
+#, python-format
+msgid "Logging off storage target %(target_iqn)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:165
+#, python-format
+msgid "Detach_volume: %(connection_info)s from %(instance_name)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:176
+#, python-format
+msgid "Detaching physical disk from instance: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
+msgid "Could not determine iscsi initiator name"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:198 nova/virt/hyperv/volumeops.py:211
+#, python-format
+msgid "Unable to find a mounted disk for target_iqn: %s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeops.py:200
+#, python-format
+msgid "Device number: %(device_number)s, target lun: %(target_lun)s"
+msgstr ""
+
+#: nova/virt/hyperv/volumeutils.py:51
+#, python-format
+msgid "An error has occurred when calling the iscsi initiator: %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:127
+#, python-format
+msgid "Unable to determine disk prefix for %s"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:174
+#, python-format
+msgid "No free disk device names for prefix '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/blockinfo.py:264
+#, python-format
+msgid "Unable to determine disk bus for '%s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:351
+#, python-format
+msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:558
+#, python-format
+msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:566
+#, python-format
+msgid "Connecting to libvirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:583
+#, python-format
+msgid "URI %s does not support events"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:599
+msgid "Connection to libvirt broke"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
+#, python-format
+msgid "Can not handle authentication request for %d credentials"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:642
+#, python-format
+msgid "Connection to libvirt failed: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:734
+#, python-format
+msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:749
+msgid "During wait destroy, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:754
+msgid "Instance destroyed successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:764
+msgid "Instance may be started again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:774
+msgid "Going to destroy instance again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:793
+msgid "Error from libvirt during undefineFlags. Retrying with undefine"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:809
+#, python-format
+msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:829
+msgid "Instance may be still running, destroy it again."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:835
+#, python-format
+msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:863
+#, python-format
+msgid "Deleting instance files %(target)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:872
+#, python-format
+msgid "Failed to cleanup directory %(target)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:915
+msgid "Could not determine fibre channel world wide node names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:922
+msgid "Could not determine fibre channel world wide port names"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:927
+msgid "No Volume Connector found."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1049
+msgid "During detach_volume, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1073
+msgid "attaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1093
+msgid "During detach_interface, instance disappeared."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1097
+msgid "detaching network adapter failed."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1183
+msgid "Beginning live snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1186
+msgid "Beginning cold snapshot process"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1215
+msgid "Snapshot extracted, beginning image upload"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1227
+msgid "Snapshot image upload complete"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1300
+msgid "Instance soft rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1304
+msgid "Failed to soft reboot instance."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1339
+msgid "Instance shutdown successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1347
+msgid "Instance may have been rebooted during soft reboot, so return now."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1395
+msgid "Instance rebooted successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1541
+msgid "Instance is running"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
+msgid "Instance spawned successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1564
+#, python-format
+msgid "data: %(data)r, fpath: %(fpath)r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
+#, python-format
+msgid "Truncated console log returned, %d bytes ignored"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1616
+msgid "Guest does not have a console available"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1685
+#, python-format
+msgid "Path '%(path)s' supports direct I/O"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1689
+#, python-format
+msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
+#, python-format
+msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1770
+msgid "Creating image"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1871
+msgid "Using config drive"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1920
+#, python-format
+msgid "Injecting %(inj)s into image %(img_id)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1930
+#, python-format
+msgid "Error injecting data into image %(img_id)s (%(e)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1987
+#, python-format
+msgid ""
+"Config requested an explicit CPU model, but the current libvirt "
+"hypervisor '%s' does not support selecting CPU models"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1993
+msgid "Config requested a custom CPU model, but no model name was provided"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:1997
+msgid "A CPU model name should not be set when a host CPU model is requested"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2001
+#, python-format
+msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2017
+msgid ""
+"Passthrough of the host CPU was requested but this libvirt version does "
+"not support this feature"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2341
+#, python-format
+msgid ""
+"Start to_xml instance=%(instance)s network_info=%(network_info)s "
+"disk_info=%(disk_info)s image_meta=%(image_meta)s "
+"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2356
+#, python-format
+msgid "End to_xml instance=%(instance)s xml=%(xml)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2373
+#, python-format
+msgid ""
+"Error from libvirt while looking up %(instance_name)s: [Error Code "
+"%(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
+#, python-format
+msgid "Invalid range expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2565
+#, python-format
+msgid "Invalid exclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2572
+#, python-format
+msgid "Invalid inclusion expression %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2577
+#, python-format
+msgid "No CPUs available after parsing %r"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2594
+msgid ""
+"Cannot get the number of cpu, because this function is not implemented "
+"for this platform. "
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2604
+msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2656
+#, python-format
+msgid "couldn't obtain the vpu count from domain id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2662
+#, python-format
+msgid "List of domains returned by libVirt: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2664
+#, python-format
+msgid "libVirt can't find a domain with id: %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2728
+msgid "libvirt version is too old (does not support getVersion)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2812
+#, python-format
+msgid "Trying to get stats for the volume %s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2825
+#, python-format
+msgid ""
+"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
+"rd_req=%(rd_req)d, rd_bytes=%(rd_bytes)d, wr_req=%(wr_req)d, "
+"wr_bytes=%(wr_bytes)d"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2843
+#, python-format
+msgid ""
+"Getting block stats failed, device might have been detached. "
+"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2848
+#, python-format
+msgid ""
+"Could not find domain in libvirt for instance %s. Cannot get block stats "
+"for device"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:2925
+#, python-format
+msgid ""
+"Creating tmpfile %s to verify with other compute node that the instance "
+"is on the same shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3006
+msgid "Block migration can not be used with shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3014
+msgid "Live migration can not be used without shared storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3059
+#, python-format
+msgid ""
+"Unable to migrate %(instance_uuid)s: Disk of instance is too "
+"large(available on destination host:%(available)s < need:%(necessary)s)"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3084
+#, python-format
+msgid ""
+"Instance launched has CPU info:\n"
+"%s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3096
+#, python-format
+msgid ""
+"CPU doesn't have compatibility.\n"
+"\n"
+"%(ret)s\n"
+"\n"
+"Refer to %(u)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3113
+#, python-format
+msgid ""
+"Creating tmpfile %s to notify to other compute nodes that they should "
+"mount the same storage."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3161
+#, python-format
+msgid "The firewall filter for %s does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3233
+#, python-format
+msgid "Live Migration failure: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3335
+#, python-format
+msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3447
+#, python-format
+msgid ""
+"Error from libvirt while getting description of %(instance_name)s: [Error"
+" Code %(error_code)s] %(ex)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3464
+#, python-format
+msgid "skipping %(path)s since it looks like volume"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3469
+#, python-format
+msgid "skipping disk for %(instance_name)s as it does not have a path"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3510
+#, python-format
+msgid "Getting disk size of %(i_name)s: %(e)s"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3579
+msgid "Starting migrate_disk_and_power_off"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3647
+msgid "Instance running successfully."
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3653
+msgid "Starting finish_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3717
+msgid "Starting finish_revert_migration"
+msgstr ""
+
+#: nova/virt/libvirt/driver.py:3840
+#, python-format
+msgid "Checking instance files accessability%(instance_path)s"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:51
+msgid ""
+"Libvirt module could not be loaded. NWFilterFirewall will not work "
+"correctly."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:107
+msgid "Called setup_basic_filtering in nwfilter"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:115
+msgid "Ensuring static filters"
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:247
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:270
+#, python-format
+msgid "The nwfilter(%(instance_filter_name)s) for%(name)s is not found."
+msgstr ""
+
+#: nova/virt/libvirt/firewall.py:286
+msgid "iptables firewall: Setup Basic Filtering"
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:319
+msgid "You should specify libvirt_images_volume_group flag to use LVM images."
+msgstr ""
+
+#: nova/virt/libvirt/imagebackend.py:403
+#, python-format
+msgid "Unknown image_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:139
+#, python-format
+msgid "Error reading image info file %(filename)s: %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:178
+#, python-format
+msgid "Reading image info file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:200
+#, python-format
+msgid "Writing stored info to %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:329
+#, python-format
+msgid "%s is a valid instance name"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:332
+#, python-format
+msgid "%s has a disk file"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:334
+#, python-format
+msgid "Instance %(instance)s is backed by %(backing)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:347
+#, python-format
+msgid ""
+"Instance %(instance)s is using a backing file %(backing)s which does not "
+"appear in the image service"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:422
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image verification failed"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:432
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): image verification skipped, no hash "
+"stored"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:441
+#, python-format
+msgid "%(id)s (%(base_file)s): generating checksum"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:456
+#, python-format
+msgid "Cannot remove %(base_file)s, it does not exist"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:468
+#, python-format
+msgid "Base file too young to remove: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:471
+#, python-format
+msgid "Removing base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:478
+#, python-format
+msgid "Failed to remove %(base_file)s, error was %(error)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:489
+#, python-format
+msgid "image %(id)s at (%(base_file)s): checking"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:513
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): in use: on this node %(local)d local, "
+"%(remote)d on other nodes sharing this instance storage"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:525
+#, python-format
+msgid ""
+"image %(id)s at (%(base_file)s): warning -- an absent base file is in "
+"use! instances: %(instance_list)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:537
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is not in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:544
+#, python-format
+msgid "image %(id)s at (%(base_file)s): image is in use"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:568
+#, python-format
+msgid "Skipping verification, no base directory at %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:572
+msgid "Verify base images"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:579
+#, python-format
+msgid "Image id %(id)s yields fingerprint %(fingerprint)s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:597
+#, python-format
+msgid "Unknown base file: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:602
+#, python-format
+msgid "Active base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:605
+#, python-format
+msgid "Corrupt base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:609
+#, python-format
+msgid "Removable base files: %s"
+msgstr ""
+
+#: nova/virt/libvirt/imagecache.py:617
+msgid "Verification complete"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:72 nova/virt/libvirt/utils.py:78
+msgid "systool is not installed"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:82
+msgid "Cannot find any Fibre Channel HBAs"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:224
+#, python-format
+msgid ""
+"Insufficient Space on Volume Group %(vg)s. Only %(free_space)db "
+"available, but %(size)db required by volume %(lv)s."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:237
+#, python-format
+msgid ""
+"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
+"Virtual volume size is %(size)db, but free space on volume group is only "
+"%(free_space)db."
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:272
+#, python-format
+msgid "vg %s must be LVM volume group"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:301
+#, python-format
+msgid "Path %s must be LVM logical volume"
+msgstr ""
+
+#: nova/virt/libvirt/utils.py:566
+msgid "Can't retrieve root device path from instance libvirt configuration"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:265 nova/virt/libvirt/vif.py:386
+#: nova/virt/libvirt/vif.py:473
+#, python-format
+msgid ""
+"vif_type=%(vif_type)s instance=%(instance)s network=%(network)s "
+"mapping=%(mapping)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:271 nova/virt/libvirt/vif.py:392
+#: nova/virt/libvirt/vif.py:479
+msgid "vif_type parameter must be present for this vif_driver implementation"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:292 nova/virt/libvirt/vif.py:405
+#: nova/virt/libvirt/vif.py:492
+#, python-format
+msgid "Unexpected vif_type=%s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:304
+#, python-format
+msgid "Ensuring vlan %(vlan)s and bridge %(bridge)s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:314
+#, python-format
+msgid "Ensuring bridge %s"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:422 nova/virt/libvirt/vif.py:451
+msgid "Failed while unplugging vif"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:501
+msgid ""
+"The LibvirtBridgeDriver VIF driver is now deprecated and will be removed "
+"in the next release. Please use the LibvirtGenericVIFDriver VIF driver, "
+"together with a network plugin that reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:527
+msgid ""
+"The LibvirtOpenVswitchDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:555
+msgid ""
+"The LibvirtHybridOVSBridgeDriver VIF driver is now deprecated and will be"
+" removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:583
+msgid ""
+"The LibvirtOpenVswitchVirtualPortDriver VIF driver is now deprecated and "
+"will be removed in the next release. Please use the "
+"LibvirtGenericVIFDriver VIF driver, together with a network plugin that "
+"reports the 'vif_type' attribute"
+msgstr ""
+
+#: nova/virt/libvirt/vif.py:609
+msgid ""
+"The QuantumLinuxBridgeVIFDriver VIF driver is now deprecated and will be "
+"removed in the next release. Please use the LibvirtGenericVIFDriver VIF "
+"driver, together with a network plugin that reports the 'vif_type' "
+"attribute"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:238
+#, python-format
+msgid "iSCSI device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:241
+#, python-format
+msgid ""
+"ISCSI volume not yet found at: %(disk_dev)s. Will rescan & retry. Try "
+"number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:254
+#, python-format
+msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
+#, python-format
+msgid "%s is already mounted"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:560
+#, python-format
+msgid "AoE device not found at %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:562
+#, python-format
+msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:577
+#, python-format
+msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:704
+msgid "We are unable to locate any Fibre Channel devices"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:713
+#, python-format
+msgid "Looking for Fibre Channel dev %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:723
+msgid "Fibre Channel device not found."
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:726
+#, python-format
+msgid ""
+"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
+"Try number: %(tries)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:743
+#, python-format
+msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:752
+#, python-format
+msgid "Multipath device discovered %(device)s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:828
+msgid "Value required for 'scality_sofs_config'"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:839
+#, python-format
+msgid "Cannot access 'scality_sofs_config': %s"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:845
+msgid "Cannot execute /sbin/mount.sofs"
+msgstr ""
+
+#: nova/virt/libvirt/volume.py:860
+msgid "Cannot mount Scality SOFS, check syslog for errors"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:149
+#, python-format
+msgid "Removing the logical volume '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:167
+#, python-format
+msgid "Fetching image '%s' from glance"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:172
+#, python-format
+msgid "Using image found at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:174
+#, python-format
+msgid "Ensuring image '%s' exists on IVM"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:186
+#, python-format
+msgid "Creating logical volume of size %s bytes"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:189
+#, python-format
+msgid "Copying image to the device '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:192
+msgid "Error while creating logical volume from image. Will attempt cleanup."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:200
+msgid "Error while attempting cleanup of failed deploy to logical volume."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:246
+msgid "Snapshot added to glance."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:252
+#, python-format
+msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:337
+msgid "Could not create logical volume. No space left on any volume group."
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
+msgid "Unable to get checksum"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
+msgid "Image checksums do not match"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:469
+#, python-format
+msgid "Image found on host at '%s'"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:477
+msgid "Uncompressed image file not found"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
+#, python-format
+msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
+#, python-format
+msgid "Found error stream for command \"%(command)s\": %(error_text)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:67
+msgid "Connection error connecting PowerVM manager"
+msgstr ""
+
+#: nova/virt/powervm/common.py:100
+#, python-format
+msgid "Running cmd (SSH-as-root): %s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:149
+msgid "File transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/common.py:168
+#, python-format
+msgid "ftp GET %(remote_path)s to: %(local_path)s"
+msgstr ""
+
+#: nova/virt/powervm/common.py:174
+msgid "File transfer from PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:124
+msgid "In get_host_ip_addr"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:127
+#, python-format
+msgid "Attempting to resolve %s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:129
+#, python-format
+msgid "%(hostname)s was successfully resolved to %(ip_addr)s"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:174
+#, python-format
+msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
+msgstr ""
+
+#: nova/virt/powervm/driver.py:306
+#, python-format
+msgid "Unrecognized root disk information: %s"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:21
+msgid "Connection to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:25
+#, python-format
+msgid "File '%(file_path)s' transfer to PowerVM manager failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:29
+#, python-format
+msgid "FTP %(ftp_cmd)s from %(source_path)s to %(dest_path)s failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:33
+#, python-format
+msgid "LPAR instance '%(instance_name)s' could not be found"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:37
+#, python-format
+msgid "LPAR instance '%(instance_name)s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:41
+msgid "No space left on any volume group"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:49
+#, python-format
+msgid "Operation '%(operation)s' on LPAR '%(instance_name)s' timed out"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:54
+msgid "Image creation failed on PowerVM"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:58
+#, python-format
+msgid ""
+"Insufficient free memory on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:63
+#, python-format
+msgid ""
+"Insufficient available CPUs on PowerVM system to spawn instance "
+"'%(instance_name)s'"
+msgstr ""
+
+#: nova/virt/powervm/exception.py:68
+#, python-format
+msgid "PowerVM LPAR instance '%(instance_name)s' cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/lpar.py:55
+#, python-format
+msgid ""
+"Encountered unknown LPAR attribute: %s\n"
+"Continuing without storing"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:98
+#, python-format
+msgid "LPAR instance '%s' not found"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:186
+#, python-format
+msgid "PowerVM image creation failed: %s"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:200
+#, python-format
+msgid "Creating LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:202
+#, python-format
+msgid "LPAR instance '%s' creation failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:208
+#, python-format
+msgid "Activating the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:225
+#, python-format
+msgid "Instance '%s' failed to boot"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:237
+msgid "Error while attempting to clean up failed instance launch."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:241
+#, python-format
+msgid "Instance spawned in %s seconds"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:252
+#, python-format
+msgid "During destroy, LPAR instance '%s' was not found on PowerVM system."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:271
+#, python-format
+msgid "Stopping instance %s for snapshot."
+msgstr ""
+
+#: nova/virt/powervm/operator.py:294
+#, python-format
+msgid "Shutting down the instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:299
+#, python-format
+msgid "Deleting the LPAR instance '%s'"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:311
+msgid "PowerVM instance cleanup failed"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:333 nova/virt/powervm/operator.py:389
+msgid "Not enough free memory in the host"
+msgstr ""
+
+#: nova/virt/powervm/operator.py:344 nova/virt/powervm/operator.py:395
+msgid "Insufficient available CPU on PowerVM"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:138
+msgid ""
+"Must specify vmwareapi_host_ip,vmwareapi_host_username and "
+"vmwareapi_host_password to usecompute_driver=vmwareapi.VMwareESXDriver or"
+" vmwareapi.VMwareVCDriver"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:355
+#, python-format
+msgid "VMware Cluster %s is not found"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:457
+#, python-format
+msgid "In vmwareapi:_create_session, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:540
+#, python-format
+msgid "In vmwareapi:_call_method, got this exception: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:576
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: success"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:581
+#, python-format
+msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/driver.py:585
+#, python-format
+msgid "In vmwareapi:_poll_task, Got this error %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/error_util.py:93
+#, python-format
+msgid "Error(s) %s occurred in the call to RetrieveProperties"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:45 nova/virt/xenapi/fake.py:77
+#, python-format
+msgid "%(text)s: _db_content => %(content)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:132
+#, python-format
+msgid "Property %(attr)s not set for the managed object %(name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:492
+msgid "There is no VM registered"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:494 nova/virt/vmwareapi/fake.py:669
+#, python-format
+msgid "Virtual Machine with ref %s is not there"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:557
+#, python-format
+msgid "Logging out a session that is invalid or already logged out: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:572
+msgid "Session is faulty"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:575
+msgid "Session Invalid"
+msgstr ""
+
+#: nova/virt/vmwareapi/fake.py:666
+msgid "No Virtual Machine has been registered yet"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:40
+#, python-format
+msgid "%(action)s %(host)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/host.py:63
+#, python-format
+msgid "Set maintenance mod on %(host)s to %(mode)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:112
+#, python-format
+msgid "Glance image %s is in killed state"
+msgstr ""
+
+#: nova/virt/vmwareapi/io_util.py:120
+#, python-format
+msgid "Glance image %(image_id)s is in unknown state - %(state)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:135
+msgid ""
+"ESX SOAP server returned an empty port group for the host system in its "
+"response"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:161
+#, python-format
+msgid "Creating Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/network_util.py:175
+#, python-format
+msgid "Created Port Group with name %s on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/read_write_util.py:142
+#, python-format
+msgid "Exception during HTTP connection close in VMwareHTTPWrite. Exception is %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:84
+msgid "Unable to import suds."
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:169
+#, python-format
+msgid "No such SOAP method '%s' provided by VI SDK"
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:174
+#, python-format
+msgid "httplib error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:181
+#, python-format
+msgid "Socket error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:186
+#, python-format
+msgid "Type error in %s: "
+msgstr ""
+
+#: nova/virt/vmwareapi/vim.py:190
+#, python-format
+msgid "Exception in %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:92
+msgid "Getting list of instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:108
+#, python-format
+msgid "Got total of %s instances"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:198
+msgid "Creating VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:206
+msgid "Created VM on the ESX host"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:230
+#, python-format
+msgid ""
+"Creating Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter "
+"type %(adapter_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:249
+#, python-format
+msgid ""
+"Created Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:258
+#, python-format
+msgid ""
+"Deleting the file %(vmdk_path)s on the ESX host localstore "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:272
+#, python-format
+msgid ""
+"Deleted the file %(vmdk_path)s on the ESX host local store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:280
+#, python-format
+msgid ""
+"Downloading image file data %(image_ref)s to the ESX data store "
+"%(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:300
+#, python-format
+msgid ""
+"Downloaded image file data %(image_ref)s to %(upload_vmdk_name)s on the "
+"ESX data store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:314
+#, python-format
+msgid ""
+"Copying Virtual Disk of size %(vmdk_file_size_in_kb)s KB and adapter type"
+" %(adapter_type)s on the ESX host local store %(data_store_name)s to disk"
+" type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:335
+#, python-format
+msgid ""
+"Copied Virtual Disk of size %(vmdk_file_size_in_kb)s KB and type "
+"%(disk_type)s on the ESX host local store %(data_store_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:414
+msgid "Powering on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:420
+msgid "Powered on the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:466
+msgid "Creating Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:476
+msgid "Created Snapshot of the VM instance"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:521
+msgid "Copying disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:534
+msgid "Copied disk data before snapshot of the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:543
+#, python-format
+msgid "Uploading image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:557
+#, python-format
+msgid "Uploaded image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:570
+#, python-format
+msgid "Deleting temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:579
+#, python-format
+msgid "Deleted temporary vmdk file %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:611
+msgid "instance is not powered on"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:618
+msgid "Rebooting guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:621
+msgid "Rebooted guest OS of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:623
+msgid "Doing hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:627
+msgid "Did hard reboot of VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:639 nova/virt/vmwareapi/vmops.py:671
+#: nova/virt/vmwareapi/vmops.py:964
+msgid "instance not present"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:645 nova/virt/vmwareapi/vmops.py:968
+msgid "Destroying the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:650 nova/virt/vmwareapi/vmops.py:973
+msgid "Destroyed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:652
+#, python-format
+msgid "In vmwareapi:vmops:delete, got this exception while destroying the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:690 nova/virt/vmwareapi/vmops.py:843
+msgid "Powering off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:695 nova/virt/vmwareapi/vmops.py:848
+msgid "Powered off the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:699
+msgid "Unregistering the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:702
+msgid "Unregistered the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:704
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while un-registering the "
+"VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:717
+#, python-format
+msgid "Deleting contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:729
+#, python-format
+msgid "Deleted contents of the VM from datastore %(datastore_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:734
+#, python-format
+msgid ""
+"In vmwareapi:vmops:destroy, got this exception while deleting the VM "
+"contents from the disk: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:742
+msgid "pause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:746
+msgid "unpause not supported for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:760
+msgid "Suspending the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:764
+msgid "Suspended the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:767
+msgid "instance is powered off and cannot be suspended."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:770
+msgid "VM was already in suspended state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:783
+msgid "Resuming the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:788
+msgid "Resumed the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:790
+msgid "instance is not in a suspended state"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:851
+msgid "instance is suspended and cannot be powered off."
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:854
+msgid "VM was already in powered off state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:867
+msgid "VM was already in powered on state. So returning without doing anything"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:871
+msgid "Powering on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:876
+msgid "Powered on the VM"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:893
+#, python-format
+msgid "Updating instance '%(instance_uuid)s' progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:924
+#, python-format
+msgid "Renaming the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:930
+#, python-format
+msgid "Renamed the VM to %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:945
+#, python-format
+msgid "Cloning VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:953
+#, python-format
+msgid "Cloned VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:975
+#, python-format
+msgid ""
+"In vmwareapi:vmops:confirm_migration, got this exception while destroying"
+" the VM: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:990
+#, python-format
+msgid "Renaming the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:996
+#, python-format
+msgid "Renamed the VM from %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1022
+#, python-format
+msgid "Migrating VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1034
+#, python-format
+msgid "Migrated VM to host %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
+#, python-format
+msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1048
+#, python-format
+msgid "Automatically hard rebooting %d"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1084
+msgid "get_diagnostics not implemented for vmwareapi"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1166
+msgid "Reconfiguring VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1172
+msgid "Reconfigured VM instance to set the machine id"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1186
+#, python-format
+msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1193
+#, python-format
+msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1286
+#, python-format
+msgid "Creating directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmops.py:1292
+#, python-format
+msgid "Created directory with path %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:91
+#, python-format
+msgid "Downloading image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:107
+#, python-format
+msgid "Downloaded image %s from glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:113
+#, python-format
+msgid "Uploading image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:139
+#, python-format
+msgid "Uploaded image %s to the Glance image server"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:150
+#, python-format
+msgid "Getting image size for the image %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/vmware_images.py:155
+#, python-format
+msgid "Got image size of %(size)s for the image %(image)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:163
+#, python-format
+msgid "Rescanning HBA %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:166
+#, python-format
+msgid "Rescanned HBA %s "
+msgstr ""
+
+#: nova/virt/vmwareapi/volume_util.py:178 nova/virt/xenapi/volume_utils.py:267
+#, python-format
+msgid "Mountpoint cannot be translated: %s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:57
+#, python-format
+msgid ""
+"Reconfiguring VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:65
+#, python-format
+msgid ""
+"Reconfigured VM instance %(instance_name)s to attach disk %(vmdk_path)s "
+"or device %(device_name)s with type %(disk_type)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:77
+#, python-format
+msgid "Reconfiguring VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:84
+#, python-format
+msgid "Reconfigured VM instance %(instance_name)s to detach disk %(disk_key)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:91
+#, python-format
+msgid "Discovering iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:96
+msgid "Storage target found. No need to discover"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:104
+#, python-format
+msgid "Discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:107
+#, python-format
+msgid "Unable to discovered iSCSI target %(target_iqn)s from %(target_portal)s."
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:127 nova/virt/xenapi/volumeops.py:47
+#, python-format
+msgid "Attach_volume: %(connection_info)s, %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:138 nova/virt/vmwareapi/volumeops.py:177
+msgid "Unable to find iSCSI Target"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:156 nova/virt/xenapi/volumeops.py:57
+#, python-format
+msgid "Mountpoint %(mountpoint)s attached to instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:166 nova/virt/xenapi/volumeops.py:128
+#, python-format
+msgid "Detach_volume: %(instance_name)s, %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:185
+msgid "Unable to find volume"
+msgstr ""
+
+#: nova/virt/vmwareapi/volumeops.py:187 nova/virt/xenapi/volumeops.py:147
+#, python-format
+msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
+#, python-format
+msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
+#, python-format
+msgid ""
+"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
+"args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:120
+#, python-format
+msgid ""
+"The agent call to %(method)s returned an invalid response: %(ret)r. "
+"path=%(path)s; args=%(args)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:130
+#, python-format
+msgid "Failed to query agent version: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:149
+msgid "Querying agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:163
+msgid "Reached maximum time attempting to query agent version"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:171
+#, python-format
+msgid "Updating agent to %s"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:179
+#, python-format
+msgid "Failed to update agent: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:193
+msgid "Setting admin password"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:204
+#, python-format
+msgid "Failed to exchange keys: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:224
+#, python-format
+msgid "Failed to update password: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:245
+msgid "Skipping setting of ssh key for Windows."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:260
+#, python-format
+msgid "Injecting file path: %r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:273
+#, python-format
+msgid "Failed to inject file: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:280
+msgid "Resetting network"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:286
+#, python-format
+msgid "Failed to reset network: %(resp)r"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:309
+msgid ""
+"XenServer tools installed in this image are capable of network injection."
+" Networking files will not bemanipulated"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:317
+msgid ""
+"XenServer tools are present in this image but are not capable of network "
+"injection"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:321
+msgid "XenServer tools are not installed in this image"
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
+#, python-format
+msgid "OpenSSL error: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:134
+msgid ""
+"Must specify xenapi_connection_url, xenapi_connection_username "
+"(optionally), and xenapi_connection_password to use "
+"compute_driver=xenapi.XenAPIDriver"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:161
+msgid "Failure while cleaning up attached VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:346
+#, python-format
+msgid "Could not determine key: %s"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:562
+msgid "Host startup on XenServer is not supported."
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:622
+msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:662
+msgid "Host is member of a pool, but DB says otherwise"
+msgstr ""
+
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
+#, python-format
+msgid "Got exception: %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:687 nova/virt/xenapi/fake.py:791
+#: nova/virt/xenapi/fake.py:810 nova/virt/xenapi/fake.py:878
+msgid "Raising NotImplemented"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:689
+#, python-format
+msgid "xenapi.fake does not have an implementation for %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:723
+#, python-format
+msgid "Calling %(localname)s %(impl)s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:728
+#, python-format
+msgid "Calling getter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:731
+#, python-format
+msgid "Calling setter %s"
+msgstr ""
+
+#: nova/virt/xenapi/fake.py:793
+#, python-format
+msgid ""
+"xenapi.fake does not have an implementation for %s or it has been called "
+"with the wrong number of arguments"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:68
+#, python-format
+msgid ""
+"Instance %(name)s running on %(host)s could not be found in the database:"
+" assuming it is a worker VM and skip ping migration to a new host"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:80
+#, python-format
+msgid "Aggregate for host %(host)s count not be found."
+msgstr ""
+
+#: nova/virt/xenapi/host.py:101
+#, python-format
+msgid "Unable to migrate VM %(vm_ref)sfrom %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:185
+#, python-format
+msgid "Failed to extract instance support from %s"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:202
+msgid "Unable to get updated status"
+msgstr ""
+
+#: nova/virt/xenapi/host.py:205
+#, python-format
+msgid "The call to %(method)s returned an error: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:29
+#, python-format
+msgid "Found non-unique network for name_label %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:47
+#, python-format
+msgid "Found non-unique network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/network_utils.py:49
+#, python-format
+msgid "Found no network for bridge %s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:71
+#, python-format
+msgid ""
+"Aggregate %(aggregate_id)s: unrecoverable state during operation on "
+"%(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:158
+#, python-format
+msgid "Unable to eject %(host)s from the pool; pool not empty"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:175
+#, python-format
+msgid "Unable to eject %(host)s from the pool; No master found"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:192
+#, python-format
+msgid "Pool-Join failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:195
+#, python-format
+msgid "Unable to join %(host)s in the pool"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:211
+#, python-format
+msgid "Pool-eject failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:223
+#, python-format
+msgid "Unable to set up pool: %(e)s."
+msgstr ""
+
+#: nova/virt/xenapi/pool.py:234
+#, python-format
+msgid "Pool-set_name_label failed: %(e)s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:101
+#, python-format
+msgid "Found no PIF for device %s"
+msgstr ""
+
+#: nova/virt/xenapi/vif.py:120
+#, python-format
+msgid ""
+"PIF %(pif_rec['uuid'])s for network %(bridge)s has VLAN id %(pif_vlan)d. "
+"Expected %(vlan_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:275
+msgid "Created VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:287
+msgid "VM destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
+msgid "VM already halted, skipping shutdown..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:296
+msgid "Shutting down VM (cleanly)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:311
+msgid "Shutting down VM (hard)"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:349
+#, python-format
+msgid "VBD not found in instance %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:366
+#, python-format
+msgid "VBD %s already detached"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:369
+#, python-format
+msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:374
+#, python-format
+msgid "Unable to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:379
+#, python-format
+msgid "Reached maximum number of retries trying to unplug VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:390
+#, python-format
+msgid "Unable to destroy VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:412
+#, python-format
+msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:415
+#, python-format
+msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:441
+#, python-format
+msgid "Unable to destroy VDI %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:468
+#, python-format
+msgid ""
+"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
+" on %(sr_ref)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:482
+msgid "SR not present and could not be introduced"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:507
+#, python-format
+msgid "block device info: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:593
+#, python-format
+msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:638
+#, python-format
+msgid "No primary VDI found for %(vm_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:651
+msgid "Starting snapshot for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:701
+#, python-format
+msgid "Destroying cached VDI '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:954
+#, python-format
+msgid ""
+"Fast cloning is only supported on default local SR of type ext. SR on "
+"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1010
+#, python-format
+msgid "Unrecognized cache_images value '%s', defaulting to True"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1044
+#, python-format
+msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1056
+#, python-format
+msgid ""
+"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
+"params: %(params)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1069
+#, python-format
+msgid "download_vhd failed: %r"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1104
+#, python-format
+msgid "Invalid value '%s' for xenapi_torrent_images"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1115
+#, python-format
+msgid "Asking xapi to fetch vhd image %(image_id)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1190
+#, python-format
+msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1206
+#, python-format
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1230
+#, python-format
+msgid "Fetching image %(image_id)s, type %(image_type_str)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1243
+#, python-format
+msgid "Size for image %(image_id)s: %(virtual_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1252
+#, python-format
+msgid ""
+"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
+"bytes"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1271
+#, python-format
+msgid "Copying VDI %s to /boot/guest on dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1285
+#, python-format
+msgid "Kernel/Ramdisk VDI %s destroyed"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1294
+msgid "Failed to fetch glance image"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1335
+#, python-format
+msgid "Detected %(image_type_str)s format for image %(image_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1366
+#, python-format
+msgid "Looking up vdi %s for PV kernel"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1384
+#, python-format
+msgid ""
+"Image format is None: trying to determine PV status using pygrub; if "
+"instance with vdi %s does not boot correctly, try with image metadata."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1390
+#, python-format
+msgid "Unknown image format %(disk_image_type)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1421
+#, python-format
+msgid "VDI %s is still available"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1524
+#, python-format
+msgid "Unable to parse rrd of %(vm_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1551
+#, python-format
+msgid "Re-scanning SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1579
+#, python-format
+msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1597
+msgid ""
+"XenAPI is unable to find a Storage Repository to install guest instances "
+"on. Please check your configuration and/or configure the flag "
+"'sr_matching_filter'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1610
+msgid "Cannot find SR of content-type ISO"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1618
+#, python-format
+msgid "ISO: looking at SR %(sr_rec)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1620
+msgid "ISO: not iso content"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1623
+msgid "ISO: iso content_type, no 'i18n-key' key"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1626
+msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1630
+msgid "ISO: SR MATCHing our criteria"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1632
+msgid "ISO: ISO, looking to see if it is host local"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1635
+#, python-format
+msgid "ISO: PBD %(pbd_ref)s disappeared"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1638
+#, python-format
+msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1641
+msgid "ISO: SR with local PBD"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1663
+#, python-format
+msgid ""
+"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
+"%(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1679
+#, python-format
+msgid "Unable to obtain RRD XML updates with server details: %(server)s."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1733
+#, python-format
+msgid "Invalid statistics data from Xenserver: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1793
+#, python-format
+msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1880
+#, python-format
+msgid ""
+"Parent %(parent_uuid)s doesn't match original parent "
+"%(original_parent_uuid)s, waiting for coalesce..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1890
+#, python-format
+msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1925
+#, python-format
+msgid "Timeout waiting for device %s to be created"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1945
+#, python-format
+msgid "Disconnecting stale VDI %s from compute domU"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1958
+#, python-format
+msgid "Plugging VBD %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1961
+#, python-format
+msgid "Plugging VBD %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1963
+#, python-format
+msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1966
+#, python-format
+msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1971
+#, python-format
+msgid "Destroying VBD for VDI %s ... "
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:1979
+#, python-format
+msgid "Destroying VBD for VDI %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2006
+#, python-format
+msgid "Running pygrub against %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2014
+#, python-format
+msgid "Found Xen kernel %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2016
+msgid "No Xen kernel found. Booting HVM."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2018
+msgid ""
+"Error while executing pygrub! Please, ensure the binary is installed "
+"correctly, and available in your PATH; on some Linux distros, pygrub may "
+"be installed in /usr/lib/xen-X.Y/bin/pygrub. Attempting to boot in HVM "
+"mode."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2035
+msgid "Partitions:"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2041
+#, python-format
+msgid " %(num)s: %(ptype)s %(size)d sectors"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2066
+#, python-format
+msgid ""
+"Writing partition table %(primary_first)d %(primary_last)d to "
+"%(dev_path)s..."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2079
+#, python-format
+msgid "Writing partition table %s done."
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2120
+#, python-format
+msgid ""
+"Resize down not allowed because minimum filesystem sectors "
+"%(min_sectors)d is too big for target sectors %(new_sectors)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2162
+#, python-format
+msgid ""
+"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
+"virtual_size=%(virtual_size)d block_size=%(block_size)d"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2197
+#, python-format
+msgid ""
+"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
+"reduction in size"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2249
+msgid "Manipulating interface files directly"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2258
+#, python-format
+msgid "Failed to mount filesystem (expected for non-linux instances): %s"
+msgstr ""
+
+#: nova/virt/xenapi/vm_utils.py:2370
+msgid "This domU must be running on the host specified by xenapi_connection_url"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
+#, python-format
+msgid "Updating progress to %(progress)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:174
+#, python-format
+msgid "Importing image upload handler: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:189
+msgid "Error: Agent is disabled"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:308
+msgid "Starting instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:394
+msgid "Removing kernel/ramdisk files from dom0"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:467
+#, python-format
+msgid "Block device information present: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:498
+msgid "Failed to spawn, rolling back"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:593
+msgid "Auto configuring disk, attempting to resize partition..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:639
+msgid "Starting VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:645
+msgid "Waiting for instance state to become running"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:659
+#, python-format
+msgid ""
+"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
+"%(version)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:662
+#, python-format
+msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:673
+#, python-format
+msgid "Instance agent version: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:704
+msgid "Setting VCPU weight"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:715
+#, python-format
+msgid "Could not find VM with name %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:773
+msgid "Finished snapshot and upload for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:777
+#, python-format
+msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:785
+msgid "Failed to transfer vhd to new host"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:811
+msgid "VM was already shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:815
+msgid "Clean shutdown did not complete successfully, trying hard shutdown."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:819
+msgid "Unable to terminate instance."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:824
+msgid "Resize down not allowed without auto_disk_config"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:877
+msgid ""
+"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
+"%{exception}."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:993
+#, python-format
+msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:998
+msgid "Resize complete"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1042
+msgid "Starting halted instance found during reboot"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1048
+msgid ""
+"Reboot failed due to bad volumes, detaching bad volumes and starting "
+"halted instance"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1142
+msgid "Unable to find root VBD/VDI for VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1146
+msgid "Destroying VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1173
+msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1180
+msgid "instance has a kernel or ramdisk but not both"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1187
+msgid "kernel/ramdisk files removed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1214
+msgid "Destroying VM"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1243
+msgid "VM is not present, skipping destroy..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1294
+#, python-format
+msgid "Instance is already in Rescue Mode: %s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1328
+msgid "VM is not present, skipping soft delete..."
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1381
+msgid "Automatically hard rebooting"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1521
+msgid "Injecting network info to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1540
+msgid "Creating vifs"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1549
+#, python-format
+msgid "Creating VIF for network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1552
+#, python-format
+msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1580
+msgid "Injecting hostname to xenstore"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1678
+#, python-format
+msgid ""
+"Destination host:%(hostname)s must be in the same aggregate as the source"
+" server"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1699
+msgid "No suitable network for migrate"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1711
+msgid "Migrate Receive failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1785
+msgid "XAPI supporting relax-xsm-sr-check=true requried"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1796
+msgid "VM.assert_can_migrate failed"
+msgstr ""
+
+#: nova/virt/xenapi/vmops.py:1849
+msgid "Migrate Send failed"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:51
+#, python-format
+msgid "Creating SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:61
+#, python-format
+msgid "Introducing SR %(label)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:68
+msgid "Creating PBD for SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:71
+msgid "Plugging SR"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:82
+msgid "Forgetting SR..."
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:104
+#, python-format
+msgid "Unable to find SR from VBD %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:121
+#, python-format
+msgid "Ignoring exception %(exc)s when getting PBDs for %(sr_ref)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:129
+#, python-format
+msgid "Ignoring exception %(exc)s when unplugging PBD %(pbd)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:153
+#, python-format
+msgid "Unable to introduce VDI on SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:161
+#, python-format
+msgid "Unable to get record of VDI %s on"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:183
+#, python-format
+msgid "Unable to introduce VDI for SR %s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:193
+msgid "Cannot purge SR with referenced VDIs"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:202
+#, python-format
+msgid "Unable to obtain target information %(mountpoint)s"
+msgstr ""
+
+#: nova/virt/xenapi/volume_utils.py:241
+#, python-format
+msgid "Unable to obtain target information %(connection_data)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:70
+#, python-format
+msgid "Connect_volume: %(connection_info)s"
+msgstr ""
+
+#: nova/virt/xenapi/volumeops.py:139
+#, python-format
+msgid "Skipping detach because VBD for %(instance_name)s was not found"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:69
+#, python-format
+msgid ""
+"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
+"server: %(glance_host)s:%(glance_port)d attempt "
+"%(attempt_num)d/%(max_attempts)d"
+msgstr ""
+
+#: nova/virt/xenapi/imageupload/glance.py:82
+#, python-format
+msgid "upload_vhd failed: %r"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:95 nova/vnc/xvp_proxy.py:100
+#, python-format
+msgid "Error in handshake: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:116
+#, python-format
+msgid "Invalid request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:136
+#, python-format
+msgid "Request: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:139
+#, python-format
+msgid "Request made with missing token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:149
+#, python-format
+msgid "Request made with invalid token: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:156
+#, python-format
+msgid "Unexpected error: %s"
+msgstr ""
+
+#: nova/vnc/xvp_proxy.py:176
+#, python-format
+msgid "Starting nova-xvpvncproxy node (version %s)"
+msgstr ""
+
+#: nova/volume/cinder.py:98
+#, python-format
+msgid "Cinderclient connection created using URL: %s"
+msgstr ""
+
+#: nova/volume/cinder.py:229
+msgid "status must be 'in-use'"
+msgstr ""
+
+#: nova/volume/cinder.py:235
+msgid "status must be 'available'"
+msgstr ""
+
+#~ msgid ""
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
+#~ msgstr ""
+
diff --git a/nova/locale/zh_TW/LC_MESSAGES/nova.po b/nova/locale/zh_TW/LC_MESSAGES/nova.po
index 537527494..591527ba6 100644
--- a/nova/locale/zh_TW/LC_MESSAGES/nova.po
+++ b/nova/locale/zh_TW/LC_MESSAGES/nova.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nova\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2013-05-18 19:37+0000\n"
+"POT-Creation-Date: 2013-06-11 19:37+0000\n"
"PO-Revision-Date: 2012-03-07 02:00+0000\n"
"Last-Translator: Charles Hsu <charles0126+openstack@gmail.com>\n"
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
-#: nova/block_device.py:167 nova/virt/hyperv/basevolumeutils.py:91
+#: nova/block_device.py:343 nova/virt/hyperv/basevolumeutils.py:91
#, python-format
msgid "block_device_list %s"
msgstr ""
@@ -156,212 +156,222 @@ msgid "Block Device Mapping is Invalid: failed to get volume %(id)s."
msgstr ""
#: nova/exception.py:225
+msgid ""
+"Block Device Mapping is Invalid: some fields are not recognized, or have "
+"invalid values."
+msgstr ""
+
+#: nova/exception.py:231
+msgid "Block Device Mapping cannot be converted to legacy format. "
+msgstr ""
+
+#: nova/exception.py:236
#, python-format
msgid "Volume %(volume_id)s is not attached to anything"
msgstr ""
-#: nova/exception.py:229
+#: nova/exception.py:240
#, python-format
msgid ""
"Volume %(volume_id)s did not finish being created even after we waited "
"%(seconds)s seconds or %(attempts)s attempts."
msgstr ""
-#: nova/exception.py:235 nova/api/ec2/cloud.py:462
-#: nova/api/openstack/compute/contrib/keypairs.py:98 nova/compute/api.py:2778
+#: nova/exception.py:246 nova/api/ec2/cloud.py:462
msgid "Keypair data is invalid"
msgstr "無效的Keypair"
-#: nova/exception.py:239
+#: nova/exception.py:250
msgid "The request is invalid."
msgstr ""
-#: nova/exception.py:243
+#: nova/exception.py:254
msgid "Invalid input received"
msgstr ""
-#: nova/exception.py:247
+#: nova/exception.py:258
msgid "Invalid volume"
msgstr ""
-#: nova/exception.py:251 nova/api/openstack/compute/servers.py:1334
+#: nova/exception.py:262 nova/api/openstack/compute/servers.py:1339
#: nova/api/openstack/compute/contrib/admin_actions.py:242
+#: nova/api/openstack/compute/plugins/v3/servers.py:1429
msgid "Invalid metadata"
msgstr ""
-#: nova/exception.py:255
+#: nova/exception.py:266
msgid "Invalid metadata size"
msgstr ""
-#: nova/exception.py:259
+#: nova/exception.py:270
#, python-format
msgid "Invalid port range %(from_port)s:%(to_port)s. %(msg)s"
msgstr ""
-#: nova/exception.py:263
+#: nova/exception.py:274
#, python-format
msgid "Invalid IP protocol %(protocol)s."
msgstr ""
-#: nova/exception.py:267
+#: nova/exception.py:278
#, python-format
msgid "Invalid content type %(content_type)s."
msgstr ""
-#: nova/exception.py:271
+#: nova/exception.py:282
#, python-format
msgid "Invalid cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:275 nova/openstack/common/db/exception.py:44
+#: nova/exception.py:286 nova/openstack/common/db/exception.py:44
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: nova/exception.py:282
+#: nova/exception.py:293
#, python-format
msgid "%(err)s"
msgstr ""
-#: nova/exception.py:286
+#: nova/exception.py:297
#, python-format
msgid ""
"Cannot perform action '%(action)s' on aggregate %(aggregate_id)s. Reason:"
" %(reason)s."
msgstr ""
-#: nova/exception.py:291
+#: nova/exception.py:302
#, python-format
msgid "Group not valid. Reason: %(reason)s"
msgstr ""
-#: nova/exception.py:295 nova/openstack/common/db/sqlalchemy/utils.py:33
+#: nova/exception.py:306 nova/openstack/common/db/sqlalchemy/utils.py:33
msgid "Sort key supplied was not valid."
msgstr ""
-#: nova/exception.py:299
+#: nova/exception.py:310
#, python-format
msgid ""
"Instance %(instance_uuid)s in %(attr)s %(state)s. Cannot %(method)s while"
" the instance is in this state."
msgstr ""
-#: nova/exception.py:304
+#: nova/exception.py:315
#, python-format
msgid "Instance %(instance_id)s is not running."
msgstr ""
-#: nova/exception.py:308
+#: nova/exception.py:319
#, python-format
msgid "Instance %(instance_id)s is not in rescue mode"
msgstr ""
-#: nova/exception.py:312
+#: nova/exception.py:323
#, python-format
msgid "Instance %(instance_id)s cannot be rescued: %(reason)s"
msgstr ""
-#: nova/exception.py:316
+#: nova/exception.py:327
#, python-format
msgid "Instance %(instance_id)s is not ready"
msgstr ""
-#: nova/exception.py:320
+#: nova/exception.py:331
msgid "Failed to suspend instance"
msgstr ""
-#: nova/exception.py:324
+#: nova/exception.py:335
#, fuzzy, python-format
msgid "Failed to resume instance: %(reason)s."
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/exception.py:328
+#: nova/exception.py:339
#, python-format
msgid "Failed to power on instance: %(reason)s."
msgstr ""
-#: nova/exception.py:332
+#: nova/exception.py:343
#, python-format
msgid "Failed to power off instance: %(reason)s."
msgstr ""
-#: nova/exception.py:336
+#: nova/exception.py:347
msgid "Failed to reboot instance"
msgstr ""
-#: nova/exception.py:340
+#: nova/exception.py:351
msgid "Failed to terminate instance"
msgstr ""
-#: nova/exception.py:344
+#: nova/exception.py:355
#, fuzzy
msgid "Failed to deploy instance"
msgstr "無法å¸è¼‰ Volume %s"
-#: nova/exception.py:348
+#: nova/exception.py:359
msgid "Service is unavailable at this time."
msgstr ""
-#: nova/exception.py:352
+#: nova/exception.py:363
msgid "Insufficient compute resources."
msgstr ""
-#: nova/exception.py:356
+#: nova/exception.py:367
#, python-format
msgid "Compute service of %(host)s is unavailable at this time."
msgstr ""
-#: nova/exception.py:360
+#: nova/exception.py:371
#, python-format
msgid "Unable to migrate instance (%(instance_id)s) to current host (%(host)s)."
msgstr ""
-#: nova/exception.py:365
+#: nova/exception.py:376
msgid "The supplied hypervisor type of is invalid."
msgstr ""
-#: nova/exception.py:369
+#: nova/exception.py:380
msgid "The instance requires a newer hypervisor version than has been provided."
msgstr ""
-#: nova/exception.py:374
+#: nova/exception.py:385
#, python-format
msgid ""
"The supplied disk path (%(path)s) already exists, it is expected not to "
"exist."
msgstr ""
-#: nova/exception.py:379
+#: nova/exception.py:390
#, python-format
msgid "The supplied device path (%(path)s) is invalid."
msgstr ""
-#: nova/exception.py:383
+#: nova/exception.py:394
#, python-format
msgid "The supplied device path (%(path)s) is in use."
msgstr ""
-#: nova/exception.py:388
+#: nova/exception.py:399
#, python-format
msgid "The supplied device (%(device)s) is busy."
msgstr ""
-#: nova/exception.py:392
+#: nova/exception.py:403
msgid "Unacceptable CPU info"
msgstr ""
-#: nova/exception.py:396
+#: nova/exception.py:407
#, python-format
msgid "%(address)s is not a valid IP v4/6 address."
msgstr ""
-#: nova/exception.py:400
+#: nova/exception.py:411
#, python-format
msgid ""
"VLAN tag is not appropriate for the port group %(bridge)s. Expected VLAN "
"tag is %(tag)s, but the one associated with the port group is %(pgroup)s."
msgstr ""
-#: nova/exception.py:406
+#: nova/exception.py:417
#, python-format
msgid ""
"vSwitch which contains the port group %(bridge)s is not associated with "
@@ -369,85 +379,85 @@ msgid ""
"one associated is %(actual)s."
msgstr ""
-#: nova/exception.py:413
+#: nova/exception.py:424
#, python-format
msgid "Disk format %(disk_format)s is not acceptable"
msgstr ""
-#: nova/exception.py:417
+#: nova/exception.py:428
#, python-format
msgid "Image %(image_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:421
+#: nova/exception.py:432
#, python-format
msgid "Instance %(instance_id)s is unacceptable: %(reason)s"
msgstr ""
-#: nova/exception.py:425
+#: nova/exception.py:436
#, python-format
msgid "Ec2 id %(ec2_id)s is unacceptable."
msgstr ""
-#: nova/exception.py:429
+#: nova/exception.py:440
#, python-format
msgid "Expected a uuid but received %(uuid)s."
msgstr ""
-#: nova/exception.py:433
+#: nova/exception.py:444
#, python-format
msgid "Invalid ID received %(id)s."
msgstr ""
-#: nova/exception.py:437
+#: nova/exception.py:448
msgid "Constraint not met."
msgstr ""
-#: nova/exception.py:442
+#: nova/exception.py:453
msgid "Resource could not be found."
msgstr ""
-#: nova/exception.py:447
+#: nova/exception.py:458
#, python-format
msgid "No agent-build associated with id %(id)s."
msgstr ""
-#: nova/exception.py:451
+#: nova/exception.py:462
#, python-format
msgid "Volume %(volume_id)s could not be found."
msgstr ""
-#: nova/exception.py:455
+#: nova/exception.py:466
#, python-format
msgid "Snapshot %(snapshot_id)s could not be found."
msgstr ""
-#: nova/exception.py:459
+#: nova/exception.py:470
#, python-format
msgid "No target id found for volume %(volume_id)s."
msgstr ""
-#: nova/exception.py:463
+#: nova/exception.py:474
#, python-format
msgid "No disk at %(location)s"
msgstr ""
-#: nova/exception.py:467
+#: nova/exception.py:478
#, python-format
msgid "Could not find a handler for %(driver_type)s volume."
msgstr ""
-#: nova/exception.py:471
+#: nova/exception.py:482
#, python-format
msgid "Invalid image href %(image_href)s."
msgstr ""
-#: nova/exception.py:475
+#: nova/exception.py:486
#, python-format
msgid "Image %(image_id)s could not be found."
msgstr ""
-#: nova/exception.py:479
+#: nova/exception.py:490
#, python-format
msgid ""
"Image %(image_id)s could not be found. The nova EC2 API assigns image ids"
@@ -455,1037 +465,1024 @@ msgid ""
"image ids since adding this image?"
msgstr ""
-#: nova/exception.py:486
+#: nova/exception.py:497
#, python-format
msgid "Project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:490
+#: nova/exception.py:501
msgid "Cannot find SR to read/write VDI."
msgstr ""
-#: nova/exception.py:494
+#: nova/exception.py:505
#, python-format
msgid "Network %(network_id)s is duplicated."
msgstr ""
-#: nova/exception.py:498
+#: nova/exception.py:509
#, python-format
msgid "Network %(network_id)s is still in use."
msgstr ""
-#: nova/exception.py:502
+#: nova/exception.py:513
#, python-format
msgid "%(req)s is required to create a network."
msgstr ""
-#: nova/exception.py:506
+#: nova/exception.py:517
#, python-format
msgid "Network %(network_id)s could not be found."
msgstr ""
-#: nova/exception.py:510
+#: nova/exception.py:521
#, python-format
msgid "Port id %(port_id)s could not be found."
msgstr ""
-#: nova/exception.py:514
+#: nova/exception.py:525
#, python-format
msgid "Network could not be found for bridge %(bridge)s"
msgstr ""
-#: nova/exception.py:518
+#: nova/exception.py:529
#, python-format
msgid "Network could not be found for uuid %(uuid)s"
msgstr ""
-#: nova/exception.py:522
+#: nova/exception.py:533
#, python-format
msgid "Network could not be found with cidr %(cidr)s."
msgstr ""
-#: nova/exception.py:526
+#: nova/exception.py:537
#, python-format
msgid "Network could not be found for instance %(instance_id)s."
msgstr ""
-#: nova/exception.py:530
+#: nova/exception.py:541
msgid "No networks defined."
msgstr ""
-#: nova/exception.py:534
+#: nova/exception.py:545
#, python-format
msgid ""
"Either Network uuid %(network_uuid)s is not present or is not assigned to"
" the project %(project_id)s."
msgstr ""
-#: nova/exception.py:539
+#: nova/exception.py:550
msgid "Could not find the datastore reference(s) which the VM uses."
msgstr ""
-#: nova/exception.py:543
+#: nova/exception.py:554
#, python-format
msgid "Port %(port_id)s is still in use."
msgstr ""
-#: nova/exception.py:547
+#: nova/exception.py:558
#, fuzzy, python-format
msgid "Port %(port_id)s not usable for instance %(instance)s."
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/exception.py:551
+#: nova/exception.py:562
#, python-format
msgid "No free port available for instance %(instance)s."
msgstr ""
-#: nova/exception.py:555
+#: nova/exception.py:566
#, python-format
msgid "No fixed IP associated with id %(id)s."
msgstr ""
-#: nova/exception.py:559
+#: nova/exception.py:570
#, python-format
msgid "Fixed ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:563
+#: nova/exception.py:574
#, python-format
msgid "Instance %(instance_uuid)s has zero fixed ips."
msgstr ""
-#: nova/exception.py:567
+#: nova/exception.py:578
#, python-format
msgid "Network host %(host)s has zero fixed ips in network %(network_id)s."
msgstr ""
-#: nova/exception.py:572
+#: nova/exception.py:583
#, python-format
msgid "Instance %(instance_uuid)s doesn't have fixed ip '%(ip)s'."
msgstr ""
-#: nova/exception.py:576
+#: nova/exception.py:587
#, python-format
msgid ""
"Fixed IP address (%(address)s) does not exist in network "
"(%(network_uuid)s)."
msgstr ""
-#: nova/exception.py:581
+#: nova/exception.py:592
#, python-format
msgid ""
"Fixed IP address %(address)s is already in use on instance "
"%(instance_uuid)s."
msgstr ""
-#: nova/exception.py:586
+#: nova/exception.py:597
#, python-format
msgid "More than one instance is associated with fixed ip address '%(address)s'."
msgstr ""
-#: nova/exception.py:591
+#: nova/exception.py:602
#, python-format
msgid "Fixed IP address %(address)s is invalid."
msgstr ""
-#: nova/exception.py:595
+#: nova/exception.py:606
msgid "Zero fixed ips available."
msgstr ""
-#: nova/exception.py:599
+#: nova/exception.py:610
msgid "Zero fixed ips could be found."
msgstr ""
-#: nova/exception.py:608
+#: nova/exception.py:619
#, python-format
msgid "Floating ip %(address)s already exists."
msgstr ""
-#: nova/exception.py:612
+#: nova/exception.py:623
#, python-format
msgid "Floating ip not found for id %(id)s."
msgstr ""
-#: nova/exception.py:616
+#: nova/exception.py:627
#, python-format
msgid "The DNS entry %(name)s already exists in domain %(domain)s."
msgstr ""
-#: nova/exception.py:620
+#: nova/exception.py:631
#, python-format
msgid "Floating ip not found for address %(address)s."
msgstr ""
-#: nova/exception.py:624
+#: nova/exception.py:635
#, python-format
msgid "Floating ip not found for host %(host)s."
msgstr ""
-#: nova/exception.py:628
+#: nova/exception.py:639
#, python-format
msgid "Multiple floating ips are found for address %(address)s."
msgstr ""
-#: nova/exception.py:632
+#: nova/exception.py:643
msgid "Floating ip pool not found."
msgstr ""
-#: nova/exception.py:637
+#: nova/exception.py:648
msgid "Zero floating ips available."
msgstr ""
-#: nova/exception.py:642
+#: nova/exception.py:653
#, python-format
msgid "Floating ip %(address)s is associated."
msgstr ""
-#: nova/exception.py:646
+#: nova/exception.py:657
#, python-format
msgid "Floating ip %(address)s is not associated."
msgstr ""
-#: nova/exception.py:650
+#: nova/exception.py:661
msgid "Zero floating ips exist."
msgstr ""
-#: nova/exception.py:654
+#: nova/exception.py:665
#, python-format
msgid "Interface %(interface)s not found."
msgstr ""
-#: nova/exception.py:658
+#: nova/exception.py:669
msgid "Cannot disassociate auto assigined floating ip"
msgstr ""
-#: nova/exception.py:662
+#: nova/exception.py:673
#, python-format
msgid "Keypair %(name)s not found for user %(user_id)s"
msgstr ""
-#: nova/exception.py:666
+#: nova/exception.py:677
#, python-format
msgid "Certificate %(certificate_id)s not found."
msgstr ""
-#: nova/exception.py:670
+#: nova/exception.py:681
#, python-format
msgid "Service %(service_id)s could not be found."
msgstr ""
-#: nova/exception.py:674
+#: nova/exception.py:685
#, python-format
msgid "Host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:678
+#: nova/exception.py:689
#, python-format
msgid "Compute host %(host)s could not be found."
msgstr ""
-#: nova/exception.py:682
+#: nova/exception.py:693
#, python-format
msgid "Could not find binary %(binary)s on host %(host)s."
msgstr ""
-#: nova/exception.py:686
+#: nova/exception.py:697
#, python-format
msgid "Invalid reservation expiration %(expire)s."
msgstr ""
-#: nova/exception.py:690
+#: nova/exception.py:701
#, python-format
msgid ""
"Change would make usage less than 0 for the following resources: "
"%(unders)s"
msgstr ""
-#: nova/exception.py:695
+#: nova/exception.py:706
msgid "Quota could not be found"
msgstr ""
-#: nova/exception.py:699
+#: nova/exception.py:710
#, python-format
msgid "Unknown quota resources %(unknown)s."
msgstr ""
-#: nova/exception.py:703
+#: nova/exception.py:714
#, python-format
msgid "Quota for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:707
+#: nova/exception.py:718
#, python-format
msgid "Quota class %(class_name)s could not be found."
msgstr ""
-#: nova/exception.py:711
+#: nova/exception.py:722
#, python-format
msgid "Quota usage for project %(project_id)s could not be found."
msgstr ""
-#: nova/exception.py:715
+#: nova/exception.py:726
#, python-format
msgid "Quota reservation %(uuid)s could not be found."
msgstr ""
-#: nova/exception.py:719
+#: nova/exception.py:730
#, python-format
msgid "Quota exceeded for resources: %(overs)s"
msgstr ""
-#: nova/exception.py:723
+#: nova/exception.py:734
#, python-format
msgid "Security group %(security_group_id)s not found."
msgstr ""
-#: nova/exception.py:727
+#: nova/exception.py:738
#, python-format
msgid "Security group %(security_group_id)s not found for project %(project_id)s."
msgstr ""
-#: nova/exception.py:732
+#: nova/exception.py:743
#, python-format
msgid "Security group with rule %(rule_id)s not found."
msgstr ""
-#: nova/exception.py:736
+#: nova/exception.py:747
#, python-format
msgid ""
"Security group %(security_group_id)s is already associated with the "
"instance %(instance_id)s"
msgstr ""
-#: nova/exception.py:741
+#: nova/exception.py:752
#, python-format
msgid ""
"Security group %(security_group_id)s is not associated with the instance "
"%(instance_id)s"
msgstr ""
-#: nova/exception.py:746
+#: nova/exception.py:757
#, python-format
msgid "Security group default rule (%rule_id)s not found."
msgstr ""
-#: nova/exception.py:750
+#: nova/exception.py:761
msgid ""
"Network requires port_security_enabled and subnet associated in order to "
"apply security groups."
msgstr ""
-#: nova/exception.py:755
+#: nova/exception.py:766
msgid "No Unique Match Found."
msgstr ""
-#: nova/exception.py:760
+#: nova/exception.py:771
#, python-format
msgid "Migration %(migration_id)s could not be found."
msgstr ""
-#: nova/exception.py:764
+#: nova/exception.py:775
#, python-format
msgid "Migration not found for instance %(instance_id)s with status %(status)s."
msgstr ""
-#: nova/exception.py:769
+#: nova/exception.py:780
#, python-format
msgid "Console pool %(pool_id)s could not be found."
msgstr ""
-#: nova/exception.py:773
+#: nova/exception.py:784
#, python-format
msgid ""
"Console pool of type %(console_type)s for compute host %(compute_host)s "
"on proxy host %(host)s not found."
msgstr ""
-#: nova/exception.py:779
+#: nova/exception.py:790
#, python-format
msgid "Console %(console_id)s could not be found."
msgstr ""
-#: nova/exception.py:783
+#: nova/exception.py:794
#, python-format
msgid "Console for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:787
+#: nova/exception.py:798
#, python-format
msgid ""
"Console for instance %(instance_uuid)s in pool %(pool_id)s could not be "
"found."
msgstr ""
-#: nova/exception.py:792
+#: nova/exception.py:803
#, python-format
msgid "Invalid console type %(console_type)s"
msgstr ""
-#: nova/exception.py:796
+#: nova/exception.py:807
#, python-format
msgid "Instance type %(instance_type_id)s could not be found."
msgstr ""
-#: nova/exception.py:800
+#: nova/exception.py:811
#, python-format
msgid "Instance type with name %(instance_type_name)s could not be found."
msgstr ""
-#: nova/exception.py:805
+#: nova/exception.py:816
#, python-format
msgid "Flavor %(flavor_id)s could not be found."
msgstr ""
-#: nova/exception.py:809
+#: nova/exception.py:820
#, python-format
msgid "Flavor access not found for %(flavor_id)s / %(project_id)s combination."
msgstr ""
-#: nova/exception.py:814
+#: nova/exception.py:825
#, python-format
msgid "Cell %(cell_name)s doesn't exist."
msgstr ""
-#: nova/exception.py:818
+#: nova/exception.py:829
#, python-format
msgid "Inconsistency in cell routing: %(reason)s"
msgstr ""
-#: nova/exception.py:822
+#: nova/exception.py:833
#, python-format
msgid "Service API method not found: %(detail)s"
msgstr ""
-#: nova/exception.py:826
+#: nova/exception.py:837
msgid "Timeout waiting for response from cell"
msgstr ""
-#: nova/exception.py:830
+#: nova/exception.py:841
#, python-format
msgid "Cell message has reached maximum hop count: %(hop_count)s"
msgstr ""
-#: nova/exception.py:834
+#: nova/exception.py:845
msgid "No cells available matching scheduling criteria."
msgstr ""
-#: nova/exception.py:838
+#: nova/exception.py:849
#, python-format
msgid "Exception received during cell processing: %(exc_name)s."
msgstr ""
-#: nova/exception.py:842
+#: nova/exception.py:853
#, python-format
msgid "Cell is not known for instance %(instance_uuid)s"
msgstr ""
-#: nova/exception.py:846
+#: nova/exception.py:857
#, python-format
msgid "Scheduler Host Filter %(filter_name)s could not be found."
msgstr ""
-#: nova/exception.py:850
+#: nova/exception.py:861
#, python-format
msgid "Instance %(instance_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:855
+#: nova/exception.py:866
#, python-format
msgid ""
"Instance %(instance_uuid)s has no system metadata with key "
"%(metadata_key)s."
msgstr ""
-#: nova/exception.py:860
+#: nova/exception.py:871
#, python-format
msgid ""
"Instance Type %(instance_type_id)s has no extra specs with key "
"%(extra_specs_key)s."
msgstr ""
-#: nova/exception.py:865
+#: nova/exception.py:876
#, python-format
msgid "File %(file_path)s could not be found."
msgstr ""
-#: nova/exception.py:869
+#: nova/exception.py:880
msgid "Zero files could be found."
msgstr ""
-#: nova/exception.py:873
+#: nova/exception.py:884
#, python-format
msgid "Virtual switch associated with the network adapter %(adapter)s not found."
msgstr ""
-#: nova/exception.py:878
+#: nova/exception.py:889
#, python-format
msgid "Network adapter %(adapter)s could not be found."
msgstr ""
-#: nova/exception.py:882
+#: nova/exception.py:893
#, python-format
msgid "Class %(class_name)s could not be found: %(exception)s"
msgstr ""
-#: nova/exception.py:886
+#: nova/exception.py:897
msgid "Action not allowed."
msgstr ""
-#: nova/exception.py:890
+#: nova/exception.py:901
msgid "Rotation is not allowed for snapshots"
msgstr ""
-#: nova/exception.py:894
+#: nova/exception.py:905
msgid "Rotation param is required for backup image_type"
msgstr ""
-#: nova/exception.py:898
+#: nova/exception.py:909 nova/tests/compute/test_keypairs.py:118
#, python-format
-msgid "Key pair %(key_name)s already exists."
+msgid "Key pair '%(key_name)s' already exists."
msgstr ""
-#: nova/exception.py:902
+#: nova/exception.py:913
#, python-format
msgid "Instance %(name)s already exists."
msgstr ""
-#: nova/exception.py:906
+#: nova/exception.py:917
#, python-format
msgid "Instance Type with name %(name)s already exists."
msgstr ""
-#: nova/exception.py:910
+#: nova/exception.py:921
#, python-format
msgid "Instance Type with ID %(flavor_id)s already exists."
msgstr ""
-#: nova/exception.py:914
+#: nova/exception.py:925
#, python-format
msgid ""
"Flavor access alreay exists for flavor %(flavor_id)s and project "
"%(project_id)s combination."
msgstr ""
-#: nova/exception.py:919
+#: nova/exception.py:930
#, python-format
msgid "%(path)s is not on shared storage: %(reason)s"
msgstr ""
-#: nova/exception.py:923
+#: nova/exception.py:934
#, python-format
msgid "%(path)s is not on local storage: %(reason)s"
msgstr ""
-#: nova/exception.py:927
+#: nova/exception.py:938
msgid "Migration error"
msgstr ""
-#: nova/exception.py:931
+#: nova/exception.py:942
msgid "Migration pre-check error"
msgstr ""
-#: nova/exception.py:935
+#: nova/exception.py:946
#, python-format
msgid "Malformed message body: %(reason)s"
msgstr ""
-#: nova/exception.py:941
+#: nova/exception.py:952
#, python-format
msgid "Could not find config at %(path)s"
msgstr ""
-#: nova/exception.py:945
+#: nova/exception.py:956
#, python-format
msgid "Could not load paste app '%(name)s' from %(path)s"
msgstr ""
-#: nova/exception.py:949
+#: nova/exception.py:960
msgid "When resizing, instances must change flavor!"
msgstr ""
-#: nova/exception.py:953
+#: nova/exception.py:964
#, python-format
msgid "Resize error: %(reason)s"
msgstr ""
-#: nova/exception.py:957
-msgid "Image is larger than instance type allows"
-msgstr ""
-
-#: nova/exception.py:961
+#: nova/exception.py:968
msgid "Instance type's memory is too small for requested image."
msgstr ""
-#: nova/exception.py:965
+#: nova/exception.py:972
msgid "Instance type's disk is too small for requested image."
msgstr ""
-#: nova/exception.py:969
+#: nova/exception.py:976
#, python-format
msgid "Insufficient free memory on compute node to start %(uuid)s."
msgstr ""
-#: nova/exception.py:973
+#: nova/exception.py:980
msgid "Could not fetch bandwidth/cpu/disk metrics for this host."
msgstr ""
-#: nova/exception.py:977
+#: nova/exception.py:984
#, python-format
msgid "No valid host was found. %(reason)s"
msgstr ""
-#: nova/exception.py:981
+#: nova/exception.py:988
msgid "Quota exceeded"
msgstr ""
-#: nova/exception.py:988
+#: nova/exception.py:995
#, python-format
msgid ""
"Quota exceeded for %(overs)s: Requested %(req)s, but already used "
"%(used)d of %(allowed)d %(resource)s"
msgstr ""
-#: nova/exception.py:993
+#: nova/exception.py:1000
msgid "Maximum number of floating ips exceeded"
msgstr ""
-#: nova/exception.py:997
+#: nova/exception.py:1004
msgid "Maximum number of fixed ips exceeded"
msgstr ""
-#: nova/exception.py:1001
+#: nova/exception.py:1008
#, python-format
msgid "Maximum number of metadata items exceeds %(allowed)d"
msgstr ""
-#: nova/exception.py:1005
+#: nova/exception.py:1012
msgid "Personality file limit exceeded"
msgstr ""
-#: nova/exception.py:1009
+#: nova/exception.py:1016
msgid "Personality file path too long"
msgstr ""
-#: nova/exception.py:1013
+#: nova/exception.py:1020
msgid "Personality file content too long"
msgstr ""
-#: nova/exception.py:1017
+#: nova/exception.py:1024 nova/tests/compute/test_keypairs.py:129
msgid "Maximum number of key pairs exceeded"
msgstr ""
-#: nova/exception.py:1021
+#: nova/exception.py:1028
msgid "Maximum number of security groups or rules exceeded"
msgstr ""
-#: nova/exception.py:1025
+#: nova/exception.py:1032
#, python-format
msgid ""
"Aggregate %(aggregate_id)s: action '%(action)s' caused an error: "
"%(reason)s."
msgstr ""
-#: nova/exception.py:1030
+#: nova/exception.py:1037
#, python-format
msgid "Aggregate %(aggregate_id)s could not be found."
msgstr ""
-#: nova/exception.py:1034
+#: nova/exception.py:1041
#, python-format
msgid "Aggregate %(aggregate_name)s already exists."
msgstr ""
-#: nova/exception.py:1038
+#: nova/exception.py:1045
#, python-format
msgid "Aggregate %(aggregate_id)s has no host %(host)s."
msgstr ""
-#: nova/exception.py:1042
+#: nova/exception.py:1049
#, python-format
msgid "Aggregate %(aggregate_id)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/exception.py:1047
+#: nova/exception.py:1054
#, python-format
msgid "Aggregate %(aggregate_id)s already has host %(host)s."
msgstr ""
-#: nova/exception.py:1051
+#: nova/exception.py:1058
msgid "Unable to create instance type"
msgstr ""
-#: nova/exception.py:1055
+#: nova/exception.py:1062
#, python-format
msgid "Failed to set admin password on %(instance)s because %(reason)s"
msgstr ""
-#: nova/exception.py:1061
+#: nova/exception.py:1068
#, python-format
msgid "Detected existing vlan with id %(vlan)d"
msgstr ""
-#: nova/exception.py:1065
+#: nova/exception.py:1072
msgid "There was a conflict when trying to complete your request."
msgstr ""
-#: nova/exception.py:1070
+#: nova/exception.py:1077
#, python-format
msgid "Instance %(instance_id)s could not be found."
msgstr ""
-#: nova/exception.py:1074
+#: nova/exception.py:1081
#, python-format
msgid "Info cache for instance %(instance_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1079
+#: nova/exception.py:1086
#, python-format
msgid "Node %(node_id)s could not be found."
msgstr ""
-#: nova/exception.py:1083
+#: nova/exception.py:1090
#, python-format
msgid "Node with UUID %(node_uuid)s could not be found."
msgstr ""
-#: nova/exception.py:1087
+#: nova/exception.py:1094
#, python-format
msgid "Marker %(marker)s could not be found."
msgstr ""
-#: nova/exception.py:1091
+#: nova/exception.py:1098
#, python-format
msgid "Invalid id: %(val)s (expecting \"i-...\")."
msgstr ""
-#: nova/exception.py:1095
+#: nova/exception.py:1102
#, python-format
msgid "Could not fetch image %(image_id)s"
msgstr ""
-#: nova/exception.py:1099
+#: nova/exception.py:1106
#, python-format
msgid "Could not upload image %(image_id)s"
msgstr ""
-#: nova/exception.py:1103
+#: nova/exception.py:1110
#, python-format
msgid "Task %(task_name)s is already running on host %(host)s"
msgstr ""
-#: nova/exception.py:1107
+#: nova/exception.py:1114
#, python-format
msgid "Task %(task_name)s is not running on host %(host)s"
msgstr ""
-#: nova/exception.py:1111
+#: nova/exception.py:1118
#, python-format
msgid "Instance %(instance_uuid)s is locked"
msgstr ""
-#: nova/exception.py:1115
+#: nova/exception.py:1122
#, python-format
msgid "Could not mount vfat config drive. %(operation)s failed. Error: %(error)s"
msgstr ""
-#: nova/exception.py:1120
+#: nova/exception.py:1127
#, python-format
msgid "Unknown config drive format %(format)s. Select one of iso9660 or vfat."
msgstr ""
-#: nova/exception.py:1125
+#: nova/exception.py:1132
#, fuzzy, python-format
msgid "Failed to attach network adapter device to %(instance)s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/exception.py:1129
+#: nova/exception.py:1136
#, python-format
msgid "Failed to detach network adapter device from %(instance)s"
msgstr ""
-#: nova/exception.py:1133
+#: nova/exception.py:1140
#, python-format
msgid ""
"User data too large. User data must be no larger than %(maxsize)s bytes "
"once base64 encoded. Your data is %(length)d bytes"
msgstr ""
-#: nova/exception.py:1139
+#: nova/exception.py:1146
msgid "User data needs to be valid base 64."
msgstr ""
-#: nova/exception.py:1143
+#: nova/exception.py:1150
#, python-format
msgid ""
"unexpected task state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1148
+#: nova/exception.py:1155
#, python-format
msgid ""
"Action for request_id %(request_id)s on instance %(instance_uuid)s not "
"found"
msgstr ""
-#: nova/exception.py:1153
+#: nova/exception.py:1160
#, python-format
msgid "Event %(event)s not found for action id %(action_id)s"
msgstr ""
-#: nova/exception.py:1157
+#: nova/exception.py:1164
#, python-format
msgid ""
"unexpected VM state: expecting %(expected)s but the actual state is "
"%(actual)s"
msgstr ""
-#: nova/exception.py:1162
+#: nova/exception.py:1169
#, python-format
msgid "The CA file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1166
+#: nova/exception.py:1173
#, python-format
msgid "The CRL file for %(project)s could not be found"
msgstr ""
-#: nova/exception.py:1170
+#: nova/exception.py:1177
msgid "Instance recreate is not implemented by this virt driver."
msgstr ""
-#: nova/exception.py:1174
+#: nova/exception.py:1181
#, python-format
-msgid "The service from servicegroup driver %(driver) is temporarily unavailable."
+msgid ""
+"The service from servicegroup driver %(driver)s is temporarily "
+"unavailable."
msgstr ""
-#: nova/exception.py:1179
+#: nova/exception.py:1186
#, python-format
msgid "%(binary)s attempted direct database access which is not allowed by policy"
msgstr ""
-#: nova/exception.py:1184
+#: nova/exception.py:1191
#, python-format
msgid "Virtualization type '%(virt)s' is not supported by this compute driver"
msgstr ""
-#: nova/exception.py:1189
+#: nova/exception.py:1196
#, python-format
msgid ""
"Requested hardware '%(model)s' is not supported by the '%(virt)s' virt "
"driver"
msgstr ""
-#: nova/exception.py:1194
+#: nova/exception.py:1201
#, python-format
msgid "Invalid Base 64 data for file %(path)s"
msgstr ""
-#: nova/exception.py:1198
+#: nova/exception.py:1205
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s aborted: %(reason)s"
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/exception.py:1202
+#: nova/exception.py:1209
#, fuzzy, python-format
msgid "Build of instance %(instance_uuid)s was re-scheduled: %(reason)s"
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/exception.py:1208
+#: nova/exception.py:1214
#, python-format
-msgid "Instance rollback performed due to: %s"
+msgid "Shadow table with name %(name)s already exists."
msgstr ""
-#: nova/hooks.py:62
+#: nova/exception.py:1219
#, python-format
-msgid "Running %(name)s pre-hook: %(obj)s"
+msgid "Instance rollback performed due to: %s"
msgstr ""
-#: nova/hooks.py:70
+#: nova/exception.py:1225
#, python-format
-msgid "Running %(name)s post-hook: %(obj)s"
-msgstr ""
-
-#: nova/manager.py:166
-msgid "Notifying Schedulers of capabilities ..."
+msgid "Unsupported object type %(objtype)s"
msgstr ""
-#: nova/notifications.py:112 nova/notifications.py:152
-msgid "Failed to send state update notification"
-msgstr ""
-
-#: nova/notifications.py:232
-msgid "Failed to get nw_info"
-msgstr ""
-
-#: nova/policy.py:32
-msgid "JSON file representing policy"
+#: nova/exception.py:1229
+#, python-format
+msgid "Cannot call %(method)s on orphaned %(objtype)s object"
msgstr ""
-#: nova/policy.py:35
-msgid "Rule checked when requested rule is not found"
+#: nova/exception.py:1233
+#, python-format
+msgid "Version %(objver)s of %(objname)s is not supported"
msgstr ""
-#: nova/quota.py:966
+#: nova/exception.py:1237
#, python-format
-msgid "Created reservations %(reservations)s"
+msgid "Core API extensions are missing: %(missing_apis)s"
msgstr ""
-#: nova/quota.py:988
+#: nova/exception.py:1241
#, python-format
-msgid "Failed to commit reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s could not be found."
msgstr ""
-#: nova/quota.py:990
+#: nova/exception.py:1245
#, python-format
-msgid "Committed reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s already exists."
msgstr ""
-#: nova/quota.py:1010
+#: nova/exception.py:1249
#, python-format
-msgid "Failed to roll back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no metadata with key %(metadata_key)s."
msgstr ""
-#: nova/quota.py:1012
+#: nova/exception.py:1254
#, python-format
-msgid "Rolled back reservations %(reservations)s"
+msgid "Instance group %(group_uuid)s has no member with id %(instance_id)s."
msgstr ""
-#: nova/service.py:197
-msgid "Full set of CONF:"
+#: nova/exception.py:1259
+#, python-format
+msgid "Instance group %(group_uuid)s has no policy %(policy)s."
msgstr ""
-#: nova/service.py:204
+#: nova/hooks.py:62
#, python-format
-msgid "%(flag)s : FLAG SET "
+msgid "Running %(name)s pre-hook: %(obj)s"
msgstr ""
-#: nova/service.py:214 nova/service.py:312
+#: nova/hooks.py:70
#, python-format
-msgid "Caught %s, exiting"
+msgid "Running %(name)s post-hook: %(obj)s"
msgstr ""
-#: nova/service.py:258
-msgid "Parent process has died unexpectedly, exiting"
+#: nova/manager.py:172
+msgid "Notifying Schedulers of capabilities ..."
msgstr ""
-#: nova/service.py:294
-msgid "Forking too fast, sleeping"
+#: nova/notifications.py:112 nova/notifications.py:152
+msgid "Failed to send state update notification"
msgstr ""
-#: nova/service.py:317
-msgid "Unhandled exception"
+#: nova/notifications.py:232
+msgid "Failed to get nw_info"
msgstr ""
-#: nova/service.py:324
-#, python-format
-msgid "Started child %d"
+#: nova/policy.py:32
+msgid "JSON file representing policy"
msgstr ""
-#: nova/service.py:334
-#, python-format
-msgid "Starting %d workers"
+#: nova/policy.py:35
+msgid "Rule checked when requested rule is not found"
msgstr ""
-#: nova/service.py:348
+#: nova/quota.py:972
#, python-format
-msgid "Child %(pid)d killed by signal %(sig)d"
+msgid "Created reservations %(reservations)s"
msgstr ""
-#: nova/service.py:351
+#: nova/quota.py:994
#, python-format
-msgid "Child %(pid)d exited with status %(code)d"
+msgid "Failed to commit reservations %(reservations)s"
msgstr ""
-#: nova/service.py:354
+#: nova/quota.py:996
#, python-format
-msgid "pid %d not in child list"
+msgid "Committed reservations %(reservations)s"
msgstr ""
-#: nova/service.py:374
+#: nova/quota.py:1016
#, python-format
-msgid "Caught %s, stopping children"
+msgid "Failed to roll back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:385
+#: nova/quota.py:1018
#, python-format
-msgid "Waiting on %d children to exit"
+msgid "Rolled back reservations %(reservations)s"
msgstr ""
-#: nova/service.py:427
+#: nova/service.py:152
#, python-format
msgid "Starting %(topic)s node (version %(version)s)"
msgstr ""
-#: nova/service.py:444 nova/openstack/common/rpc/service.py:47
+#: nova/service.py:169 nova/openstack/common/rpc/service.py:47
#, python-format
msgid "Creating Consumer connection for Service %s"
msgstr ""
-#: nova/service.py:464
+#: nova/service.py:189
#, python-format
msgid "Join ServiceGroup membership for this service %s"
msgstr ""
-#: nova/service.py:546
+#: nova/service.py:269
msgid "Service killed that has no database entry"
msgstr ""
-#: nova/service.py:581
+#: nova/service.py:291
#, python-format
msgid "Temporary directory is invalid: %s"
msgstr ""
-#: nova/service.py:679
+#: nova/service.py:393
msgid "serve() can only be called once"
msgstr ""
-#: nova/utils.py:145
+#: nova/utils.py:143
#, python-format
msgid "Expected to receive %(exp)s bytes, but actually %(act)s"
msgstr ""
-#: nova/utils.py:173
+#: nova/utils.py:171
#, python-format
msgid "debug in callback: %s"
msgstr ""
-#: nova/utils.py:335
+#: nova/utils.py:333
#, python-format
msgid "Link Local address is not found.:%s"
msgstr ""
-#: nova/utils.py:338
+#: nova/utils.py:336
#, python-format
msgid "Couldn't get Link Local IP of %(interface)s :%(ex)s"
msgstr ""
-#: nova/utils.py:377
+#: nova/utils.py:375
#, python-format
msgid "Invalid backend: %s"
msgstr ""
-#: nova/utils.py:438
+#: nova/utils.py:436
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
-#: nova/utils.py:567
+#: nova/utils.py:565
#, python-format
msgid "Expected object of type: %s"
msgstr ""
-#: nova/utils.py:596
+#: nova/utils.py:594
#, python-format
msgid "Invalid server_string: %s"
msgstr ""
-#: nova/utils.py:733
+#: nova/utils.py:731
#, python-format
msgid "timefunc: '%(name)s' took %(total_time).2f secs"
msgstr ""
-#: nova/utils.py:799
+#: nova/utils.py:797
#, python-format
msgid "Reloading cached file %s"
msgstr ""
@@ -1495,17 +1492,17 @@ msgstr ""
msgid "Could not remove tmpdir: %s"
msgstr ""
-#: nova/utils.py:1083
+#: nova/utils.py:1090
#, python-format
msgid "%s is not a string or unicode"
msgstr ""
-#: nova/utils.py:1087
+#: nova/utils.py:1094
#, python-format
msgid "%(name)s has less than %(min_length)s characters."
msgstr ""
-#: nova/utils.py:1092
+#: nova/utils.py:1099
#, python-format
msgid "%(name)s has more than %(max_length)s characters."
msgstr ""
@@ -1708,7 +1705,7 @@ msgstr ""
msgid "An unknown error has occurred. Please try your request again."
msgstr ""
-#: nova/api/ec2/apirequest.py:60
+#: nova/api/ec2/apirequest.py:61
#, python-format
msgid "Unsupported API request: controller = %(controller)s, action = %(action)s"
msgstr ""
@@ -1730,6 +1727,7 @@ msgstr ""
#: nova/api/ec2/cloud.py:440 nova/api/ec2/cloud.py:459
#: nova/api/openstack/compute/contrib/keypairs.py:93
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:94
msgid "Quota exceeded, too many key pairs."
msgstr ""
@@ -1804,169 +1802,169 @@ msgid "Detach Volume Failed."
msgstr ""
#: nova/api/ec2/cloud.py:942 nova/api/ec2/cloud.py:999
-#: nova/api/ec2/cloud.py:1556 nova/api/ec2/cloud.py:1571
+#: nova/api/ec2/cloud.py:1557 nova/api/ec2/cloud.py:1572
#, python-format
msgid "attribute not supported: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1073
+#: nova/api/ec2/cloud.py:1074
#, python-format
msgid "vol = %s\n"
msgstr ""
-#: nova/api/ec2/cloud.py:1233
+#: nova/api/ec2/cloud.py:1234
msgid "Allocate address"
msgstr ""
-#: nova/api/ec2/cloud.py:1237
+#: nova/api/ec2/cloud.py:1238
msgid "No more floating IPs available"
msgstr ""
-#: nova/api/ec2/cloud.py:1241
+#: nova/api/ec2/cloud.py:1242
#, python-format
msgid "Release address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1246
+#: nova/api/ec2/cloud.py:1247
msgid "Unable to release IP Address."
msgstr ""
-#: nova/api/ec2/cloud.py:1249
+#: nova/api/ec2/cloud.py:1250
#, python-format
msgid "Associate address %(public_ip)s to instance %(instance_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1259
+#: nova/api/ec2/cloud.py:1260
msgid "Unable to associate IP Address, no fixed_ips."
msgstr ""
-#: nova/api/ec2/cloud.py:1267
+#: nova/api/ec2/cloud.py:1268
#: nova/api/openstack/compute/contrib/floating_ips.py:248
#, python-format
msgid "multiple fixed_ips exist, using the first: %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1276
+#: nova/api/ec2/cloud.py:1277
msgid "Floating ip is already associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1279
+#: nova/api/ec2/cloud.py:1280
msgid "l3driver call to add floating ip failed."
msgstr ""
-#: nova/api/ec2/cloud.py:1282
+#: nova/api/ec2/cloud.py:1283
msgid "Error, unable to associate floating ip."
msgstr ""
-#: nova/api/ec2/cloud.py:1290
+#: nova/api/ec2/cloud.py:1291
#, python-format
msgid "Disassociate address %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1295
+#: nova/api/ec2/cloud.py:1296
msgid "Floating ip is not associated."
msgstr ""
-#: nova/api/ec2/cloud.py:1298
+#: nova/api/ec2/cloud.py:1299
#: nova/api/openstack/compute/contrib/floating_ips.py:97
msgid "Cannot disassociate auto assigned floating ip"
msgstr ""
-#: nova/api/ec2/cloud.py:1325
+#: nova/api/ec2/cloud.py:1326
msgid "Image must be available"
msgstr ""
-#: nova/api/ec2/cloud.py:1357
+#: nova/api/ec2/cloud.py:1358
msgid "Going to start terminating instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1367
+#: nova/api/ec2/cloud.py:1368
#, python-format
msgid "Reboot instance %r"
msgstr ""
-#: nova/api/ec2/cloud.py:1376
+#: nova/api/ec2/cloud.py:1377
msgid "Going to stop instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1385
+#: nova/api/ec2/cloud.py:1386
msgid "Going to start instances"
msgstr ""
-#: nova/api/ec2/cloud.py:1476
+#: nova/api/ec2/cloud.py:1477
#, python-format
msgid "De-registering image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1492
+#: nova/api/ec2/cloud.py:1493
msgid "imageLocation is required"
msgstr ""
-#: nova/api/ec2/cloud.py:1511
+#: nova/api/ec2/cloud.py:1512
#, python-format
msgid "Registered image %(image_location)s with id %(image_id)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1574
+#: nova/api/ec2/cloud.py:1575
msgid "user or group not specified"
msgstr ""
-#: nova/api/ec2/cloud.py:1576
+#: nova/api/ec2/cloud.py:1577
msgid "only group \"all\" is supported"
msgstr ""
-#: nova/api/ec2/cloud.py:1578
+#: nova/api/ec2/cloud.py:1579
msgid "operation_type must be add or remove"
msgstr ""
-#: nova/api/ec2/cloud.py:1580
+#: nova/api/ec2/cloud.py:1581
#, python-format
msgid "Updating image %s publicity"
msgstr ""
-#: nova/api/ec2/cloud.py:1593
+#: nova/api/ec2/cloud.py:1594
#, python-format
msgid "Not allowed to modify attributes for image %s"
msgstr ""
-#: nova/api/ec2/cloud.py:1621
+#: nova/api/ec2/cloud.py:1622
#, python-format
msgid ""
"Invalid value '%(ec2_instance_id)s' for instanceId. Instance does not "
"have a volume attached at root (%(root)s)"
msgstr ""
-#: nova/api/ec2/cloud.py:1652
+#: nova/api/ec2/cloud.py:1653
#, python-format
msgid "Couldn't stop instance with in %d sec"
msgstr ""
-#: nova/api/ec2/cloud.py:1670
+#: nova/api/ec2/cloud.py:1671
#, python-format
msgid "image of %(instance)s at %(now)s"
msgstr ""
-#: nova/api/ec2/cloud.py:1694 nova/api/ec2/cloud.py:1739
+#: nova/api/ec2/cloud.py:1695 nova/api/ec2/cloud.py:1740
msgid "resource_id and tag are required"
msgstr ""
-#: nova/api/ec2/cloud.py:1697 nova/api/ec2/cloud.py:1742
+#: nova/api/ec2/cloud.py:1698 nova/api/ec2/cloud.py:1743
msgid "Expecting a list of resources"
msgstr ""
-#: nova/api/ec2/cloud.py:1701 nova/api/ec2/cloud.py:1746
+#: nova/api/ec2/cloud.py:1702 nova/api/ec2/cloud.py:1747
msgid "Only instances implemented"
msgstr ""
-#: nova/api/ec2/cloud.py:1704 nova/api/ec2/cloud.py:1749
+#: nova/api/ec2/cloud.py:1705 nova/api/ec2/cloud.py:1750
msgid "Expecting a list of tagSets"
msgstr ""
-#: nova/api/ec2/cloud.py:1761
+#: nova/api/ec2/cloud.py:1762
msgid "Expecting key to be set"
msgstr ""
-#: nova/api/ec2/cloud.py:1834
+#: nova/api/ec2/cloud.py:1835
msgid "Invalid CIDR"
msgstr ""
@@ -2016,37 +2014,77 @@ msgstr ""
msgid "Failed to get metadata for instance id: %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/api/openstack/__init__.py:53
+#: nova/api/openstack/__init__.py:79
#, python-format
msgid "Caught error: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:62
+#: nova/api/openstack/__init__.py:88
#, python-format
msgid "%(url)s returned with HTTP %(status)d"
msgstr ""
-#: nova/api/openstack/__init__.py:137
+#: nova/api/openstack/__init__.py:175
msgid "Must specify an ExtensionManager class"
msgstr ""
-#: nova/api/openstack/__init__.py:148 nova/api/openstack/__init__.py:254
+#: nova/api/openstack/__init__.py:186 nova/api/openstack/__init__.py:349
#, python-format
msgid "Extended resource: %s"
msgstr ""
-#: nova/api/openstack/__init__.py:183 nova/api/openstack/__init__.py:294
+#: nova/api/openstack/__init__.py:221 nova/api/openstack/__init__.py:396
#, python-format
msgid ""
"Extension %(ext_name)s: Cannot extend resource %(collection)s: No such "
"resource"
msgstr ""
-#: nova/api/openstack/__init__.py:188 nova/api/openstack/__init__.py:299
+#: nova/api/openstack/__init__.py:226 nova/api/openstack/__init__.py:401
#, python-format
msgid "Extension %(ext_name)s extending resource: %(collection)s"
msgstr ""
+#: nova/api/openstack/__init__.py:269
+#, python-format
+msgid "Not loading %s because it is in the blacklist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:274
+#, python-format
+msgid "Not loading %s because it is not in the whitelist"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:285
+#, python-format
+msgid "v3 API Extension Blacklist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:287
+#, python-format
+msgid "v3 API Extension Whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:294
+#, python-format
+msgid "Extensions in both blacklist and whitelist: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:318
+#, python-format
+msgid "Missing core API extensions: %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:346
+#, python-format
+msgid "Running _register_resources on %s"
+msgstr ""
+
+#: nova/api/openstack/__init__.py:388
+#, python-format
+msgid "Running _register_controllers on %s"
+msgstr ""
+
#: nova/api/openstack/common.py:114
#, python-format
msgid ""
@@ -2071,6 +2109,7 @@ msgid "offset param must be positive"
msgstr ""
#: nova/api/openstack/common.py:231 nova/api/openstack/compute/servers.py:556
+#: nova/api/openstack/compute/plugins/v3/servers.py:598
#, python-format
msgid "marker [%s] not found"
msgstr ""
@@ -2120,21 +2159,25 @@ msgid "Loaded extension: %s"
msgstr ""
#: nova/api/openstack/extensions.py:235
+#: nova/api/openstack/compute/plugins/__init__.py:46
#, python-format
msgid "Ext name: %s"
msgstr ""
#: nova/api/openstack/extensions.py:236
+#: nova/api/openstack/compute/plugins/__init__.py:47
#, python-format
msgid "Ext alias: %s"
msgstr ""
#: nova/api/openstack/extensions.py:237
+#: nova/api/openstack/compute/plugins/__init__.py:48
#, python-format
msgid "Ext description: %s"
msgstr ""
#: nova/api/openstack/extensions.py:239
+#: nova/api/openstack/compute/plugins/__init__.py:50
#, python-format
msgid "Ext namespace: %s"
msgstr ""
@@ -2145,6 +2188,7 @@ msgid "Ext updated: %s"
msgstr ""
#: nova/api/openstack/extensions.py:242
+#: nova/api/openstack/compute/plugins/__init__.py:53
#, python-format
msgid "Exception loading extension: %s"
msgstr ""
@@ -2164,12 +2208,12 @@ msgstr ""
msgid "Failed to load extension %(ext_factory)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:347
+#: nova/api/openstack/extensions.py:348
#, python-format
msgid "Failed to load extension %(classpath)s: %(exc)s"
msgstr ""
-#: nova/api/openstack/extensions.py:370
+#: nova/api/openstack/extensions.py:371
#, python-format
msgid "Failed to load extension %(ext_name)s:%(exc)s"
msgstr ""
@@ -2214,7 +2258,7 @@ msgstr ""
msgid "There is no such action: %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:934
+#: nova/api/openstack/wsgi.py:915 nova/api/openstack/wsgi.py:935
#: nova/api/openstack/compute/server_metadata.py:58
#: nova/api/openstack/compute/server_metadata.py:76
#: nova/api/openstack/compute/server_metadata.py:101
@@ -2229,20 +2273,23 @@ msgstr ""
msgid "Action: '%(action)s', body: %(body)s"
msgstr ""
-#: nova/api/openstack/wsgi.py:922
+#: nova/api/openstack/wsgi.py:923
#, python-format
msgid "Calling method %s"
msgstr ""
-#: nova/api/openstack/wsgi.py:931
+#: nova/api/openstack/wsgi.py:932
msgid "Unsupported Content-Type"
msgstr ""
-#: nova/api/openstack/wsgi.py:943
-msgid "Malformed request url"
+#: nova/api/openstack/wsgi.py:944
+#, python-format
+msgid ""
+"Malformed request URL: URL's project_id '%(project_id)s' doesn't match "
+"Context's project_id '%(context_project_id)s'"
msgstr ""
-#: nova/api/openstack/wsgi.py:1174
+#: nova/api/openstack/wsgi.py:1181
#, python-format
msgid "Returning %(code)s to user: %(explanation)s"
msgstr ""
@@ -2314,10 +2361,12 @@ msgid "You are not allowed to delete the image."
msgstr ""
#: nova/api/openstack/compute/ips.py:68
+#: nova/api/openstack/compute/plugins/v3/ips.py:69
msgid "Instance does not exist"
msgstr ""
#: nova/api/openstack/compute/ips.py:91
+#: nova/api/openstack/compute/plugins/v3/ips.py:92
msgid "Instance is not a member of specified network"
msgstr ""
@@ -2344,217 +2393,291 @@ msgid "Metadata item was not found"
msgstr ""
#: nova/api/openstack/compute/servers.py:521
-#: nova/api/openstack/compute/contrib/cells.py:272
+#: nova/api/openstack/compute/contrib/cells.py:317
+#: nova/api/openstack/compute/plugins/v3/servers.py:563
msgid "Invalid changes-since value"
msgstr ""
#: nova/api/openstack/compute/servers.py:540
+#: nova/api/openstack/compute/plugins/v3/servers.py:582
msgid "Only administrators may list deleted instances"
msgstr ""
#: nova/api/openstack/compute/servers.py:559
+#: nova/api/openstack/compute/plugins/v3/servers.py:601
#, python-format
msgid "Flavor '%s' could not be found "
msgstr ""
#: nova/api/openstack/compute/servers.py:576
#: nova/api/openstack/compute/servers.py:743
-#: nova/api/openstack/compute/servers.py:1013
-#: nova/api/openstack/compute/servers.py:1110
-#: nova/api/openstack/compute/servers.py:1283
+#: nova/api/openstack/compute/servers.py:1009
+#: nova/api/openstack/compute/servers.py:1117
+#: nova/api/openstack/compute/servers.py:1290
+#: nova/api/openstack/compute/plugins/v3/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:785
+#: nova/api/openstack/compute/plugins/v3/servers.py:1093
+#: nova/api/openstack/compute/plugins/v3/servers.py:1201
+#: nova/api/openstack/compute/plugins/v3/servers.py:1380
msgid "Instance could not be found"
msgstr ""
#: nova/api/openstack/compute/servers.py:595
+#: nova/api/openstack/compute/plugins/v3/servers.py:637
msgid "Device name cannot include spaces."
msgstr ""
#: nova/api/openstack/compute/servers.py:612
+#: nova/api/openstack/compute/plugins/v3/servers.py:654
#, python-format
msgid "Bad personality format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:615
+#: nova/api/openstack/compute/plugins/v3/servers.py:657
msgid "Bad personality format"
msgstr ""
#: nova/api/openstack/compute/servers.py:618
+#: nova/api/openstack/compute/plugins/v3/servers.py:660
#, python-format
msgid "Personality content for %s cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:649
+#: nova/api/openstack/compute/plugins/v3/servers.py:691
msgid "Unknown argment : port"
msgstr ""
#: nova/api/openstack/compute/servers.py:652
+#: nova/api/openstack/compute/plugins/v3/servers.py:694
#, python-format
msgid "Bad port format: port uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:662
+#: nova/api/openstack/compute/plugins/v3/servers.py:704
#, python-format
msgid "Bad networks format: network uuid is not in proper format (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:672
+#: nova/api/openstack/compute/plugins/v3/servers.py:714
#, python-format
msgid "Invalid fixed IP address (%s)"
msgstr ""
#: nova/api/openstack/compute/servers.py:685
+#: nova/api/openstack/compute/plugins/v3/servers.py:727
#, python-format
msgid "Duplicate networks (%s) are not allowed"
msgstr ""
#: nova/api/openstack/compute/servers.py:691
+#: nova/api/openstack/compute/plugins/v3/servers.py:733
#, python-format
msgid "Bad network format: missing %s"
msgstr ""
#: nova/api/openstack/compute/servers.py:694
+#: nova/api/openstack/compute/servers.py:795
+#: nova/api/openstack/compute/plugins/v3/servers.py:736
msgid "Bad networks format"
msgstr ""
#: nova/api/openstack/compute/servers.py:720
+#: nova/api/openstack/compute/plugins/v3/servers.py:762
msgid "Userdata content cannot be decoded"
msgstr ""
#: nova/api/openstack/compute/servers.py:725
+#: nova/api/openstack/compute/plugins/v3/servers.py:767
msgid "accessIPv4 is not proper IPv4 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:730
+#: nova/api/openstack/compute/plugins/v3/servers.py:772
msgid "accessIPv6 is not proper IPv6 format"
msgstr ""
#: nova/api/openstack/compute/servers.py:759
+#: nova/api/openstack/compute/plugins/v3/servers.py:801
msgid "Server name is not defined"
msgstr ""
-#: nova/api/openstack/compute/servers.py:808
-#: nova/api/openstack/compute/servers.py:924
+#: nova/api/openstack/compute/servers.py:811
+#: nova/api/openstack/compute/servers.py:915
+#: nova/api/openstack/compute/plugins/v3/servers.py:876
+#: nova/api/openstack/compute/plugins/v3/servers.py:993
msgid "Invalid flavorRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:849
+#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/plugins/v3/servers.py:924
msgid "min_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:852
+#: nova/api/openstack/compute/servers.py:855
+#: nova/api/openstack/compute/plugins/v3/servers.py:927
msgid "min_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:858
+#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/plugins/v3/servers.py:933
msgid "max_count must be an integer value"
msgstr ""
-#: nova/api/openstack/compute/servers.py:861
+#: nova/api/openstack/compute/servers.py:864
+#: nova/api/openstack/compute/plugins/v3/servers.py:936
msgid "max_count must be > 0"
msgstr ""
-#: nova/api/openstack/compute/servers.py:865
+#: nova/api/openstack/compute/servers.py:868
+#: nova/api/openstack/compute/plugins/v3/servers.py:940
msgid "min_count must be <= max_count"
msgstr ""
-#: nova/api/openstack/compute/servers.py:919
+#: nova/api/openstack/compute/servers.py:912
+#: nova/api/openstack/compute/plugins/v3/servers.py:990
msgid "Can not find requested image"
msgstr ""
-#: nova/api/openstack/compute/servers.py:927
+#: nova/api/openstack/compute/servers.py:918
+#: nova/api/openstack/compute/plugins/v3/servers.py:996
msgid "Invalid key_name provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/servers.py:997
+#: nova/api/openstack/compute/plugins/v3/servers.py:1081
msgid "HostId cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1005
+#: nova/api/openstack/compute/servers.py:1001
+#: nova/api/openstack/compute/plugins/v3/servers.py:1085
msgid "Personality cannot be updated."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1031
-#: nova/api/openstack/compute/servers.py:1048
+#: nova/api/openstack/compute/servers.py:1027
+#: nova/api/openstack/compute/servers.py:1044
+#: nova/api/openstack/compute/plugins/v3/servers.py:1111
+#: nova/api/openstack/compute/plugins/v3/servers.py:1128
msgid "Instance has not been resized."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1051
+#: nova/api/openstack/compute/servers.py:1047
+#: nova/api/openstack/compute/plugins/v3/servers.py:1131
msgid "Flavor used by the instance could not be found."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/servers.py:1063
+#: nova/api/openstack/compute/plugins/v3/servers.py:1147
msgid "Argument 'type' for reboot is not HARD or SOFT"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1071
+#: nova/api/openstack/compute/servers.py:1067
+#: nova/api/openstack/compute/plugins/v3/servers.py:1151
msgid "Missing argument 'type' for reboot"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1093
+#: nova/api/openstack/compute/servers.py:1089
+#: nova/api/openstack/compute/plugins/v3/servers.py:1173
msgid "Unable to locate requested flavor."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1096
+#: nova/api/openstack/compute/servers.py:1092
+#: nova/api/openstack/compute/plugins/v3/servers.py:1176
msgid "Resize requires a flavor change."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1120
+#: nova/api/openstack/compute/servers.py:1098
+#: nova/api/openstack/compute/plugins/v3/servers.py:1182
+msgid "You are not authorized to access the image the instance was started with."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1102
+#: nova/api/openstack/compute/plugins/v3/servers.py:1186
+msgid "Image that the instance was started with could not be found."
+msgstr ""
+
+#: nova/api/openstack/compute/servers.py:1106
+#: nova/api/openstack/compute/plugins/v3/servers.py:1190
+#, fuzzy
+msgid "Invalid instance image."
+msgstr "無效的快照(snapshot)"
+
+#: nova/api/openstack/compute/servers.py:1127
+#: nova/api/openstack/compute/plugins/v3/servers.py:1211
msgid "Missing imageRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1129
+#: nova/api/openstack/compute/servers.py:1136
+#: nova/api/openstack/compute/plugins/v3/servers.py:1220
msgid "Invalid imageRef provided."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1156
+#: nova/api/openstack/compute/servers.py:1163
+#: nova/api/openstack/compute/plugins/v3/servers.py:1253
msgid "Missing flavorRef attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1169
+#: nova/api/openstack/compute/servers.py:1176
+#: nova/api/openstack/compute/plugins/v3/servers.py:1266
msgid "No adminPass was specified"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1173
-#: nova/api/openstack/compute/servers.py:1384
+#: nova/api/openstack/compute/servers.py:1180
+#: nova/api/openstack/compute/servers.py:1389
+#: nova/api/openstack/compute/plugins/v3/servers.py:1270
+#: nova/api/openstack/compute/plugins/v3/servers.py:1479
msgid "Invalid adminPass"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1179
+#: nova/api/openstack/compute/servers.py:1186
+#: nova/api/openstack/compute/plugins/v3/servers.py:1276
msgid "Unable to set password on instance"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1188
+#: nova/api/openstack/compute/servers.py:1195
+#: nova/api/openstack/compute/plugins/v3/servers.py:1285
msgid "Unable to parse metadata key/value pairs."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1201
+#: nova/api/openstack/compute/servers.py:1208
+#: nova/api/openstack/compute/plugins/v3/servers.py:1298
msgid "Resize request has invalid 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1204
+#: nova/api/openstack/compute/servers.py:1211
+#: nova/api/openstack/compute/plugins/v3/servers.py:1301
msgid "Resize requests require 'flavorRef' attribute."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1222
+#: nova/api/openstack/compute/servers.py:1229
#: nova/api/openstack/compute/contrib/aggregates.py:143
#: nova/api/openstack/compute/contrib/coverage_ext.py:284
#: nova/api/openstack/compute/contrib/keypairs.py:78
+#: nova/api/openstack/compute/plugins/v3/keypairs.py:79
+#: nova/api/openstack/compute/plugins/v3/servers.py:1319
msgid "Invalid request body"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1228
+#: nova/api/openstack/compute/servers.py:1235
+#: nova/api/openstack/compute/plugins/v3/servers.py:1325
msgid "Could not parse imageRef from request."
msgstr ""
-#: nova/api/openstack/compute/servers.py:1292
+#: nova/api/openstack/compute/servers.py:1296
+#: nova/api/openstack/compute/plugins/v3/servers.py:1386
msgid "Cannot find image for rebuild"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1325
+#: nova/api/openstack/compute/servers.py:1330
+#: nova/api/openstack/compute/plugins/v3/servers.py:1420
msgid "createImage entity requires name attribute"
msgstr ""
-#: nova/api/openstack/compute/servers.py:1410
+#: nova/api/openstack/compute/servers.py:1415
+#: nova/api/openstack/compute/plugins/v3/servers.py:1501
#, python-format
msgid "Removing options '%s' from query"
msgstr ""
@@ -2726,28 +2849,33 @@ msgstr ""
msgid "Must specify id or address"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:193
+#: nova/api/openstack/compute/contrib/cells.py:210
+#, python-format
+msgid "Cell %(id)s not found."
+msgstr ""
+
+#: nova/api/openstack/compute/contrib/cells.py:238
msgid "Cell name cannot be empty"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:197
+#: nova/api/openstack/compute/contrib/cells.py:242
msgid "Cell name cannot contain '!' or '.'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:204
+#: nova/api/openstack/compute/contrib/cells.py:249
msgid "Cell type must be 'parent' or 'child'"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:224
-#: nova/api/openstack/compute/contrib/cells.py:244
+#: nova/api/openstack/compute/contrib/cells.py:269
+#: nova/api/openstack/compute/contrib/cells.py:289
msgid "No cell information in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:229
+#: nova/api/openstack/compute/contrib/cells.py:274
msgid "No cell name in request"
msgstr ""
-#: nova/api/openstack/compute/contrib/cells.py:266
+#: nova/api/openstack/compute/contrib/cells.py:311
msgid "Only 'updated_since' and 'project_id' are understood."
msgstr ""
@@ -2841,14 +2969,14 @@ msgstr ""
msgid "Error in evacuate, %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:39
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:41
+#: nova/api/openstack/compute/contrib/fixed_ips.py:40
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:43
#, python-format
msgid "Fixed IP %s has been deleted"
msgstr ""
-#: nova/api/openstack/compute/contrib/fixed_ips.py:71
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:75
+#: nova/api/openstack/compute/contrib/fixed_ips.py:74
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:77
#, python-format
msgid "Fixed IP %s not found"
msgstr ""
@@ -2896,7 +3024,7 @@ msgstr ""
#: nova/api/openstack/compute/contrib/floating_ips.py:216
#: nova/api/openstack/compute/contrib/floating_ips.py:281
-#: nova/api/openstack/compute/contrib/security_groups.py:413
+#: nova/api/openstack/compute/contrib/security_groups.py:445
msgid "Missing parameter dict"
msgstr ""
@@ -3024,11 +3152,6 @@ msgstr ""
msgid "Invalid timestamp for date %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/keypairs.py:101
-#, python-format
-msgid "Key pair '%s' already exists."
-msgstr ""
-
#: nova/api/openstack/compute/contrib/multinic.py:52
msgid "Missing 'networkId' argument for addFixedIp"
msgstr ""
@@ -3139,16 +3262,16 @@ msgstr ""
msgid "Create networks failed"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:65
+#: nova/api/openstack/compute/contrib/quotas.py:69
msgid "Quota limit must be -1 or greater."
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:100
+#: nova/api/openstack/compute/contrib/quotas.py:104
#, python-format
msgid "Bad key(s) %s in quota_set"
msgstr ""
-#: nova/api/openstack/compute/contrib/quotas.py:107
+#: nova/api/openstack/compute/contrib/quotas.py:111
#, python-format
msgid "Quota for %s should be integer."
msgstr ""
@@ -3158,7 +3281,7 @@ msgid "Malformed scheduler_hints attribute"
msgstr ""
#: nova/api/openstack/compute/contrib/security_group_default_rules.py:129
-#: nova/api/openstack/compute/contrib/security_groups.py:324
+#: nova/api/openstack/compute/contrib/security_groups.py:352
msgid "Not enough parameters to build a valid rule."
msgstr ""
@@ -3175,16 +3298,16 @@ msgstr ""
msgid "security group default rule not found"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:332
+#: nova/api/openstack/compute/contrib/security_groups.py:360
#, python-format
msgid "Bad prefix for network in cidr %s"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:416
+#: nova/api/openstack/compute/contrib/security_groups.py:448
msgid "Security group not specified"
msgstr ""
-#: nova/api/openstack/compute/contrib/security_groups.py:420
+#: nova/api/openstack/compute/contrib/security_groups.py:452
msgid "Security group name cannot be empty"
msgstr ""
@@ -3196,12 +3319,12 @@ msgstr ""
msgid "stop instance"
msgstr ""
-#: nova/api/openstack/compute/contrib/services.py:123
+#: nova/api/openstack/compute/contrib/services.py:121
#, fuzzy
msgid "Unknown action"
msgstr "發生一個未知例外"
-#: nova/api/openstack/compute/contrib/services.py:137
+#: nova/api/openstack/compute/contrib/services.py:135
msgid "Unknown service"
msgstr ""
@@ -3250,16 +3373,45 @@ msgstr ""
msgid "Invalid value '%s' for force."
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:60
+#: nova/api/openstack/compute/plugins/__init__.py:35
+#, python-format
+msgid "Loaded extension %s"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/__init__.py:51
+#, python-format
+msgid "Ext version: %i"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:62
#, python-format
msgid "Reserving IP address %s"
msgstr ""
-#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:63
+#: nova/api/openstack/compute/plugins/v3/fixed_ips.py:65
#, python-format
msgid "Unreserving IP address %s"
msgstr ""
+#: nova/api/openstack/compute/plugins/v3/servers.py:485
+#, python-format
+msgid "server create extension %s detected"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:490
+#, python-format
+msgid "extension %s is missing server_create"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:508
+msgid "Did not find any server create extensions"
+msgstr ""
+
+#: nova/api/openstack/compute/plugins/v3/servers.py:1034
+#, python-format
+msgid "Running _create_extension_point for %s"
+msgstr ""
+
#: nova/api/openstack/compute/views/servers.py:186
msgid "Instance has had its instance_type removed from the DB"
msgstr ""
@@ -3269,124 +3421,157 @@ msgstr ""
msgid "Error processing message locally: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:358 nova/cells/messaging.py:364
+#: nova/cells/messaging.py:360 nova/cells/messaging.py:368
#, python-format
msgid "destination is %(target_cell)s but routing_path is %(routing_path)s"
msgstr ""
-#: nova/cells/messaging.py:374
+#: nova/cells/messaging.py:380
#, python-format
msgid "Unknown %(cell_type)s when routing to %(target_cell)s"
msgstr ""
-#: nova/cells/messaging.py:398
+#: nova/cells/messaging.py:404
#, python-format
msgid "Error locating next hop for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:425
+#: nova/cells/messaging.py:431
#, python-format
msgid "Failed to send message to cell: %(next_hop)s: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:504
+#: nova/cells/messaging.py:510
#, python-format
msgid "Error locating next hops for message: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:524
+#: nova/cells/messaging.py:530
#, python-format
msgid "Error sending message to next hops: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:542
+#: nova/cells/messaging.py:548
#, python-format
msgid "Error waiting for responses from neighbor cells: %(exc)s"
msgstr ""
-#: nova/cells/messaging.py:653
+#: nova/cells/messaging.py:663
#, python-format
msgid "Unknown method '%(method)s' in compute API"
msgstr ""
-#: nova/cells/messaging.py:676
+#: nova/cells/messaging.py:686
#, python-format
msgid "Received capabilities from child cell %(cell_name)s: %(capabilities)s"
msgstr ""
-#: nova/cells/messaging.py:685
+#: nova/cells/messaging.py:696
#, python-format
msgid "Received capacities from child cell %(cell_name)s: %(capacities)s"
msgstr ""
-#: nova/cells/messaging.py:811
+#: nova/cells/messaging.py:823
#, fuzzy, python-format
-msgid "Got update for instance %(instance_uuid)s: %(instance)s"
+msgid "Got update for instance: %(instance)s"
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/cells/messaging.py:854
-#, fuzzy, python-format
-msgid "Got update to delete instance %(instance_uuid)s"
+#: nova/cells/messaging.py:866
+#, fuzzy
+msgid "Got update to delete instance"
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/cells/messaging.py:869
+#: nova/cells/messaging.py:881
#, python-format
msgid "Got broadcast to %(delete_type)s delete instance"
msgstr ""
-#: nova/cells/messaging.py:883
+#: nova/cells/messaging.py:895
#, python-format
msgid "Got message to create instance fault: %(instance_fault)s"
msgstr ""
-#: nova/cells/messaging.py:904
+#: nova/cells/messaging.py:916
#, python-format
msgid ""
"Forcing a sync of instances, project_id=%(projid_str)s, "
"updated_since=%(since_str)s"
msgstr ""
-#: nova/cells/messaging.py:1088
+#: nova/cells/messaging.py:1101
#, python-format
msgid "Updating parents with our capabilities: %(capabs)s"
msgstr ""
-#: nova/cells/messaging.py:1108
+#: nova/cells/messaging.py:1121
#, python-format
msgid "Updating parents with our capacities: %(capacities)s"
msgstr ""
-#: nova/cells/scheduler.py:106
+#: nova/cells/scheduler.py:128
+#, python-format
+msgid "Weighted cells: %(weighted_cells)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:144
#, python-format
msgid "Scheduling with routing_path=%(routing_path)s"
msgstr ""
-#: nova/cells/scheduler.py:132
+#: nova/cells/scheduler.py:165 nova/cells/scheduler.py:204
+#, python-format
+msgid "Couldn't communicate with cell '%s'"
+msgstr ""
+
+#: nova/cells/scheduler.py:169 nova/cells/scheduler.py:208
+msgid "Couldn't communicate with any cells"
+msgstr ""
+
+#: nova/cells/scheduler.py:183
+#, python-format
+msgid "Building instances with routing_path=%(routing_path)s"
+msgstr ""
+
+#: nova/cells/scheduler.py:252
#, python-format
msgid ""
"No cells available when scheduling. Will retry in %(sleep_time)s "
"second(s)"
msgstr ""
-#: nova/cells/scheduler.py:139
+#: nova/cells/scheduler.py:258
#, python-format
msgid "Error scheduling instances %(instance_uuids)s"
msgstr ""
-#: nova/cells/state.py:270
+#: nova/cells/state.py:271
msgid "Updating cell cache from db."
msgstr ""
-#: nova/cells/state.py:315
+#: nova/cells/state.py:316
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capabilities"
msgstr ""
-#: nova/cells/state.py:330
+#: nova/cells/state.py:332
#, python-format
msgid "Unknown cell '%(cell_name)s' when trying to update capacities"
msgstr ""
+#: nova/cells/filters/target_cell.py:57
+#, python-format
+msgid ""
+"Forcing direct route to %(cell_name)s because of 'target_cell' scheduler "
+"hint"
+msgstr ""
+
+#: nova/cells/weights/mute_child.py:68
+#, python-format
+msgid ""
+"%(cell)s has not been seen since %(last_seen)s and is being treated as "
+"mute."
+msgstr ""
+
#: nova/cloudpipe/pipelib.py:48
msgid "Instance type for vpn instances"
msgstr ""
@@ -3771,240 +3956,256 @@ msgstr ""
msgid "No nova entries in syslog!"
msgstr ""
-#: nova/compute/api.py:282
+#: nova/compute/__init__.py:61
+msgid ""
+"The compute_api_class is now deprecated and will be removed in next "
+"release. Please set the cell_type option to api or compute"
+msgstr ""
+
+#: nova/compute/__init__.py:74
+msgid "cell_type must be configured as 'api' or 'compute'"
+msgstr ""
+
+#: nova/compute/api.py:293
msgid "Cannot run any more instances of this type."
msgstr ""
-#: nova/compute/api.py:289
+#: nova/compute/api.py:300
#, python-format
msgid "Can only run %s more instances of this type."
msgstr ""
-#: nova/compute/api.py:298
+#: nova/compute/api.py:309
#, python-format
msgid ""
"%(overs)s quota exceeded for %(pid)s, tried to run %(min_count)s "
"instances. %(msg)s"
msgstr ""
-#: nova/compute/api.py:318
+#: nova/compute/api.py:329
#, python-format
msgid ""
"Quota exceeded for %(pid)s, tried to set %(num_metadata)s metadata "
"properties"
msgstr ""
-#: nova/compute/api.py:328
+#: nova/compute/api.py:339
msgid "Metadata property key blank"
msgstr ""
-#: nova/compute/api.py:332
+#: nova/compute/api.py:343
msgid "Metadata property key greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:336
+#: nova/compute/api.py:347
msgid "Metadata property value greater than 255 characters"
msgstr ""
-#: nova/compute/api.py:469
+#: nova/compute/api.py:480
msgid "Failed to set instance name using multi_instance_display_name_template."
msgstr ""
-#: nova/compute/api.py:529
+#: nova/compute/api.py:562
#, fuzzy
msgid "Cannot attach one or more volumes to multiple instances"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/api.py:634
+#: nova/compute/api.py:660
#, python-format
msgid "Going to run %s instances..."
msgstr ""
-#: nova/compute/api.py:750
+#: nova/compute/api.py:804
#, python-format
msgid "bdm %s"
msgstr ""
-#: nova/compute/api.py:777
+#: nova/compute/api.py:831
#, python-format
msgid "block_device_mapping %s"
msgstr ""
-#: nova/compute/api.py:1048
+#: nova/compute/api.py:1114
#, fuzzy
msgid "instance termination disabled"
msgstr "建立虛擬介é¢å¤±æ•—"
-#: nova/compute/api.py:1184
+#: nova/compute/api.py:1251
#, python-format
msgid "instance type %(old_inst_type_id)d not found"
msgstr ""
-#: nova/compute/api.py:1190
+#: nova/compute/api.py:1257
msgid "going to delete a resizing instance"
msgstr ""
-#: nova/compute/api.py:1200
+#: nova/compute/api.py:1267
#, python-format
msgid "instance's host %s is down, deleting from database"
msgstr ""
-#: nova/compute/api.py:1243
+#: nova/compute/api.py:1310
msgid "Going to try to soft delete instance"
msgstr ""
-#: nova/compute/api.py:1267
+#: nova/compute/api.py:1334
msgid "Going to try to terminate instance"
msgstr ""
-#: nova/compute/api.py:1317
+#: nova/compute/api.py:1384
msgid "Going to try to stop instance"
msgstr ""
-#: nova/compute/api.py:1334
+#: nova/compute/api.py:1401
msgid "Going to try to start instance"
msgstr ""
-#: nova/compute/api.py:1407
+#: nova/compute/api.py:1474
#, python-format
msgid "Searching by: %s"
msgstr ""
-#: nova/compute/api.py:1644
+#: nova/compute/api.py:1711
#, python-format
msgid "snapshot for %s"
msgstr ""
-#: nova/compute/api.py:1997
+#: nova/compute/api.py:2045
msgid "flavor_id is None. Assuming migration."
msgstr ""
-#: nova/compute/api.py:2006
+#: nova/compute/api.py:2054
#, python-format
msgid ""
"Old instance type %(current_instance_type_name)s, new instance type "
"%(new_instance_type_name)s"
msgstr ""
-#: nova/compute/api.py:2048
+#: nova/compute/api.py:2100
#, python-format
msgid "%(overs)s quota exceeded for %(pid)s, tried to resize instance."
msgstr ""
-#: nova/compute/api.py:2188
+#: nova/compute/api.py:2237
msgid "Cannot rescue a volume-backed instance"
msgstr ""
-#: nova/compute/api.py:2295
+#: nova/compute/api.py:2342
msgid "Locking"
msgstr ""
-#: nova/compute/api.py:2303
+#: nova/compute/api.py:2350
msgid "Unlocking"
msgstr ""
-#: nova/compute/api.py:2375
+#: nova/compute/api.py:2422
msgid "Volume must be attached in order to detach."
msgstr ""
-#: nova/compute/api.py:2488
+#: nova/compute/api.py:2536
#, python-format
msgid "Going to try to live migrate instance to %s"
msgstr ""
-#: nova/compute/api.py:2507
+#: nova/compute/api.py:2558
msgid "vm evacuation scheduled"
msgstr ""
-#: nova/compute/api.py:2511
+#: nova/compute/api.py:2562
#, python-format
msgid ""
"Instance compute service state on %(inst_host)s expected to be down, but "
"it was up."
msgstr ""
-#: nova/compute/api.py:2758
+#: nova/compute/api.py:2808 nova/tests/compute/test_keypairs.py:108
msgid "Keypair name contains unsafe characters"
msgstr ""
-#: nova/compute/api.py:2762
+#: nova/compute/api.py:2812 nova/tests/compute/test_keypairs.py:100
+#: nova/tests/compute/test_keypairs.py:104
msgid "Keypair name must be between 1 and 255 characters long"
msgstr ""
-#: nova/compute/api.py:2858
+#: nova/compute/api.py:2894
#, python-format
msgid "Security group %s is not a string or unicode"
msgstr ""
-#: nova/compute/api.py:2861
+#: nova/compute/api.py:2897
#, python-format
msgid "Security group %s cannot be empty."
msgstr ""
-#: nova/compute/api.py:2869
+#: nova/compute/api.py:2905
#, python-format
msgid ""
"Value (%(value)s) for parameter Group%(property)s is invalid. Content "
"limited to '%(allowed)'."
msgstr ""
-#: nova/compute/api.py:2875
+#: nova/compute/api.py:2911
#, python-format
msgid "Security group %s should not be greater than 255 characters."
msgstr ""
-#: nova/compute/api.py:2893
+#: nova/compute/api.py:2929
msgid "Quota exceeded, too many security groups."
msgstr ""
-#: nova/compute/api.py:2896
+#: nova/compute/api.py:2932
#, python-format
msgid "Create Security Group %s"
msgstr ""
-#: nova/compute/api.py:2903
+#: nova/compute/api.py:2939
#, python-format
msgid "Security group %s already exists"
msgstr ""
-#: nova/compute/api.py:2967
+#: nova/compute/api.py:2958
+#, fuzzy, python-format
+msgid "Unable to update system group '%s'"
+msgstr "找ä¸åˆ°Volume %s"
+
+#: nova/compute/api.py:3018
#, fuzzy, python-format
msgid "Unable to delete system group '%s'"
msgstr "找ä¸åˆ°Volume %s"
-#: nova/compute/api.py:2972
+#: nova/compute/api.py:3023
msgid "Security group is still in use"
msgstr ""
-#: nova/compute/api.py:2980
+#: nova/compute/api.py:3031
msgid "Failed to update usages deallocating security group"
msgstr ""
-#: nova/compute/api.py:2983
+#: nova/compute/api.py:3034
#, python-format
msgid "Delete security group %s"
msgstr ""
-#: nova/compute/api.py:3060 nova/compute/api.py:3134
+#: nova/compute/api.py:3111 nova/compute/api.py:3185
#, python-format
msgid "Rule (%s) not found"
msgstr ""
-#: nova/compute/api.py:3076
+#: nova/compute/api.py:3127
msgid "Quota exceeded, too many security group rules."
msgstr ""
-#: nova/compute/api.py:3079
+#: nova/compute/api.py:3130
#, python-format
msgid "Authorize security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3088
+#: nova/compute/api.py:3139
#, python-format
msgid "Revoke security group ingress %s"
msgstr ""
-#: nova/compute/api.py:3141
+#: nova/compute/api.py:3192
msgid "Security group id should be integer"
msgstr ""
@@ -4107,653 +4308,648 @@ msgstr ""
msgid "Instance has been destroyed from under us while trying to set it to ERROR"
msgstr ""
-#: nova/compute/manager.py:407
+#: nova/compute/manager.py:409
#, python-format
msgid "Instance %(uuid)s found in the hypervisor, but not in the database"
msgstr ""
-#: nova/compute/manager.py:423
+#: nova/compute/manager.py:425
#, python-format
msgid ""
"Instance %(driver_instance)s found in the hypervisor, but not in the "
"database"
msgstr ""
-#: nova/compute/manager.py:444
+#: nova/compute/manager.py:446
#, python-format
msgid ""
"Deleting instance as its host (%(instance_host)s) is not equal to our "
"host (%(our_host)s)."
msgstr ""
-#: nova/compute/manager.py:459
+#: nova/compute/manager.py:461
msgid "Instance has been marked deleted already, removing it from the hypervisor."
msgstr ""
-#: nova/compute/manager.py:480
+#: nova/compute/manager.py:482
msgid ""
"Hypervisor driver does not support instance shared storage check, "
"assuming it's not on shared storage"
msgstr ""
-#: nova/compute/manager.py:486
+#: nova/compute/manager.py:488
msgid "Failed to check if instance shared"
msgstr ""
-#: nova/compute/manager.py:529
+#: nova/compute/manager.py:540
msgid "Failed to revert crashed migration"
msgstr ""
-#: nova/compute/manager.py:532
+#: nova/compute/manager.py:543
msgid "Instance found in migrating state during startup. Resetting task_state"
msgstr ""
-#: nova/compute/manager.py:543
+#: nova/compute/manager.py:554
#, python-format
msgid "Current state is %(drv_state)s, state in DB is %(db_state)s."
msgstr ""
-#: nova/compute/manager.py:548
+#: nova/compute/manager.py:559
msgid "Rebooting instance after nova-compute restart."
msgstr ""
-#: nova/compute/manager.py:562
+#: nova/compute/manager.py:573
msgid "Hypervisor driver does not support resume guests"
msgstr ""
-#: nova/compute/manager.py:567
+#: nova/compute/manager.py:578
#, fuzzy
msgid "Failed to resume instance"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:577
+#: nova/compute/manager.py:588
msgid "Hypervisor driver does not support firewall rules"
msgstr ""
-#: nova/compute/manager.py:581
+#: nova/compute/manager.py:592
#, python-format
msgid "Lifecycle event %(state)d on VM %(uuid)s"
msgstr ""
-#: nova/compute/manager.py:597
+#: nova/compute/manager.py:608
#, python-format
msgid "Unexpected power state %d"
msgstr ""
-#: nova/compute/manager.py:609
+#: nova/compute/manager.py:620
#, python-format
msgid "Ignoring event %s"
msgstr ""
-#: nova/compute/manager.py:647
+#: nova/compute/manager.py:658
msgid "Checking state"
msgstr ""
-#: nova/compute/manager.py:745
+#: nova/compute/manager.py:756
#, python-format
msgid "Volume id: %s finished being created but was not set as 'available'"
msgstr ""
-#: nova/compute/manager.py:762
+#: nova/compute/manager.py:773
#, python-format
msgid "Setting up bdm %s"
msgstr ""
-#: nova/compute/manager.py:862
+#: nova/compute/manager.py:873
msgid "Success"
msgstr ""
-#: nova/compute/manager.py:885
+#: nova/compute/manager.py:896
msgid "Instance disappeared before we could start it"
msgstr ""
-#: nova/compute/manager.py:906 nova/compute/manager.py:2377
+#: nova/compute/manager.py:923 nova/compute/manager.py:2422
#, python-format
msgid "No node specified, defaulting to %(node)s"
msgstr ""
-#: nova/compute/manager.py:948
+#: nova/compute/manager.py:968
msgid "Failed to dealloc network for deleted instance"
msgstr ""
-#: nova/compute/manager.py:954
+#: nova/compute/manager.py:978
msgid "Instance was deleted during spawn."
msgstr ""
-#: nova/compute/manager.py:982
+#: nova/compute/manager.py:1009
#, python-format
msgid "Error: %s"
msgstr ""
-#: nova/compute/manager.py:999
+#: nova/compute/manager.py:1026
msgid "Clean up resource before rescheduling."
msgstr ""
-#: nova/compute/manager.py:1024 nova/compute/manager.py:2431
+#: nova/compute/manager.py:1051 nova/compute/manager.py:2476
msgid "Error trying to reschedule"
msgstr ""
-#: nova/compute/manager.py:1037
+#: nova/compute/manager.py:1064
msgid "Retry info not present, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1042
+#: nova/compute/manager.py:1069
msgid "No request spec, will not reschedule"
msgstr ""
-#: nova/compute/manager.py:1048
+#: nova/compute/manager.py:1075
#, python-format
msgid "Re-scheduling %(method)s: attempt %(num)d"
msgstr ""
-#: nova/compute/manager.py:1077
+#: nova/compute/manager.py:1104
msgid "Instance build timed out. Set to error state."
msgstr ""
-#: nova/compute/manager.py:1125
-#, python-format
-msgid ""
-"image_id=%(image_id)s, image_size_bytes=%(size_bytes)d, "
-"allowed_size_bytes=%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/compute/manager.py:1131
-#, python-format
-msgid ""
-"Image '%(image_id)s' size %(size_bytes)d exceeded instance_type allowed "
-"size %(allowed_size_bytes)d"
+#: nova/compute/manager.py:1114
+msgid "Starting instance..."
msgstr ""
-#: nova/compute/manager.py:1141
-msgid "Starting instance..."
+#: nova/compute/manager.py:1138
+msgid "Allocating IP information in the background."
msgstr ""
-#: nova/compute/manager.py:1167
+#: nova/compute/manager.py:1149
msgid "Instance failed network setup"
msgstr ""
-#: nova/compute/manager.py:1170
+#: nova/compute/manager.py:1151
#, python-format
msgid "Instance network_info: |%s|"
msgstr ""
-#: nova/compute/manager.py:1181
+#: nova/compute/manager.py:1162
msgid "Instance failed block device setup"
msgstr ""
-#: nova/compute/manager.py:1200
+#: nova/compute/manager.py:1181
msgid "Instance failed to spawn"
msgstr ""
-#: nova/compute/manager.py:1251
+#: nova/compute/manager.py:1232
msgid "Deallocating network for instance"
msgstr ""
-#: nova/compute/manager.py:1322
-#, python-format
-msgid "%(action_str)s instance"
+#: nova/compute/manager.py:1306
+msgid "Failed to deallocate network for instance."
msgstr ""
-#: nova/compute/manager.py:1338
-msgid "Failed to deallocate network for instance."
+#: nova/compute/manager.py:1313
+#, python-format
+msgid "%(action_str)s instance"
msgstr ""
-#: nova/compute/manager.py:1358
+#: nova/compute/manager.py:1356
#, python-format
msgid "Ignoring DiskNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1361
+#: nova/compute/manager.py:1359
#, python-format
msgid "Ignoring VolumeNotFound: %s"
msgstr ""
-#: nova/compute/manager.py:1368
+#: nova/compute/manager.py:1366
#, python-format
msgid "terminating bdm %s"
msgstr ""
-#: nova/compute/manager.py:1415
+#: nova/compute/manager.py:1414
#, python-format
msgid "Ignoring volume cleanup failure due to %s"
msgstr ""
-#: nova/compute/manager.py:1468 nova/compute/manager.py:2606
-#: nova/compute/manager.py:4118
+#: nova/compute/manager.py:1476 nova/compute/manager.py:2658
+#: nova/compute/manager.py:4173
#, python-format
msgid "%s. Setting instance vm_state to ERROR"
msgstr ""
-#: nova/compute/manager.py:1620
+#: nova/compute/manager.py:1628
msgid "Rebuilding instance"
msgstr ""
-#: nova/compute/manager.py:1633
+#: nova/compute/manager.py:1641
msgid "Invalid state of instance files on shared storage"
msgstr ""
-#: nova/compute/manager.py:1637
+#: nova/compute/manager.py:1645
msgid "disk on shared storage, recreating using existing disk"
msgstr ""
-#: nova/compute/manager.py:1641
+#: nova/compute/manager.py:1649
#, python-format
msgid "disk not on shared storagerebuilding from: '%s'"
msgstr ""
-#: nova/compute/manager.py:1724
+#: nova/compute/manager.py:1732
#, python-format
msgid "bringing vm to original state: '%s'"
msgstr ""
-#: nova/compute/manager.py:1756
+#: nova/compute/manager.py:1764
#, fuzzy, python-format
msgid "Detaching from volume api: %s"
msgstr "無法å¸è¼‰ Volume %s"
-#: nova/compute/manager.py:1774
+#: nova/compute/manager.py:1782
msgid "Rebooting instance"
msgstr ""
-#: nova/compute/manager.py:1799
+#: nova/compute/manager.py:1807
#, python-format
msgid ""
"trying to reboot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1815
+#: nova/compute/manager.py:1823
#, fuzzy, python-format
msgid "Cannot reboot instance: %(exc)s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:1828
+#: nova/compute/manager.py:1836
msgid "Instance disappeared during reboot"
msgstr ""
-#: nova/compute/manager.py:1855
+#: nova/compute/manager.py:1863
msgid "instance snapshotting"
msgstr ""
-#: nova/compute/manager.py:1861
+#: nova/compute/manager.py:1869
#, python-format
msgid ""
"trying to snapshot a non-running instance: (state: %(state)s expected: "
"%(running)s)"
msgstr ""
-#: nova/compute/manager.py:1922
+#: nova/compute/manager.py:1930
#, python-format
msgid "Found %(num_images)d images (rotation: %(rotation)d)"
msgstr ""
-#: nova/compute/manager.py:1929
+#: nova/compute/manager.py:1937
#, python-format
msgid "Rotating out %d backups"
msgstr ""
-#: nova/compute/manager.py:1934
+#: nova/compute/manager.py:1942
#, python-format
msgid "Deleting image %s"
msgstr ""
-#: nova/compute/manager.py:1962
+#: nova/compute/manager.py:1970
#, python-format
msgid "Failed to set admin password. Instance %s is not running"
msgstr ""
-#: nova/compute/manager.py:1969
+#: nova/compute/manager.py:1977
msgid "Root password set"
msgstr ""
-#: nova/compute/manager.py:1976
+#: nova/compute/manager.py:1984
msgid "set_admin_password is not implemented by this driver or guest instance."
msgstr ""
-#: nova/compute/manager.py:1991
+#: nova/compute/manager.py:1999
#, python-format
msgid "set_admin_password failed: %s"
msgstr ""
-#: nova/compute/manager.py:1998
+#: nova/compute/manager.py:2006
msgid "error setting admin password"
msgstr ""
-#: nova/compute/manager.py:2011
+#: nova/compute/manager.py:2019
#, python-format
msgid ""
"trying to inject a file into a non-running (state: "
"%(current_power_state)s expected: %(expected_state)s)"
msgstr ""
-#: nova/compute/manager.py:2015
+#: nova/compute/manager.py:2023
#, python-format
msgid "injecting file to %(path)s"
msgstr ""
-#: nova/compute/manager.py:2035
+#: nova/compute/manager.py:2043
msgid ""
"Unable to find a different image to use for rescue VM, using instance's "
"current image"
msgstr ""
-#: nova/compute/manager.py:2048
+#: nova/compute/manager.py:2056
msgid "Rescuing"
msgstr ""
-#: nova/compute/manager.py:2067
+#: nova/compute/manager.py:2075
#, fuzzy
msgid "Error trying to Rescue Instance"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:2071
+#: nova/compute/manager.py:2079
#, python-format
msgid "Driver Error: %s"
msgstr ""
-#: nova/compute/manager.py:2089
+#: nova/compute/manager.py:2097
msgid "Unrescuing"
msgstr ""
-#: nova/compute/manager.py:2110
+#: nova/compute/manager.py:2118
#, python-format
msgid "Changing instance metadata according to %(diff)r"
msgstr ""
-#: nova/compute/manager.py:2335
+#: nova/compute/manager.py:2341
+#, python-format
+msgid "Updating instance to original state: '%s'"
+msgstr ""
+
+#: nova/compute/manager.py:2375
msgid "Instance has no source host"
msgstr ""
-#: nova/compute/manager.py:2341
+#: nova/compute/manager.py:2381
msgid "destination same as source!"
msgstr ""
-#: nova/compute/manager.py:2358
+#: nova/compute/manager.py:2403
msgid "Migrating"
msgstr ""
-#: nova/compute/manager.py:2603
+#: nova/compute/manager.py:2655
#, python-format
msgid "Failed to rollback quota for failed finish_resize: %(qr_error)s"
msgstr ""
-#: nova/compute/manager.py:2666
+#: nova/compute/manager.py:2718
msgid "Pausing"
msgstr ""
-#: nova/compute/manager.py:2684
+#: nova/compute/manager.py:2736
msgid "Unpausing"
msgstr ""
-#: nova/compute/manager.py:2722
+#: nova/compute/manager.py:2774
msgid "Retrieving diagnostics"
msgstr ""
-#: nova/compute/manager.py:2753
+#: nova/compute/manager.py:2805
msgid "Resuming"
msgstr ""
-#: nova/compute/manager.py:2773
+#: nova/compute/manager.py:2825
msgid "Reset network"
msgstr ""
-#: nova/compute/manager.py:2778
+#: nova/compute/manager.py:2830
msgid "Inject network info"
msgstr ""
-#: nova/compute/manager.py:2781
+#: nova/compute/manager.py:2833
#, python-format
msgid "network_info to inject: |%s|"
msgstr ""
-#: nova/compute/manager.py:2798
+#: nova/compute/manager.py:2850
msgid "Get console output"
msgstr ""
-#: nova/compute/manager.py:2825
+#: nova/compute/manager.py:2877
msgid "Getting vnc console"
msgstr ""
-#: nova/compute/manager.py:2860
+#: nova/compute/manager.py:2912
msgid "Getting spice console"
msgstr ""
-#: nova/compute/manager.py:2907
+#: nova/compute/manager.py:2959
#, python-format
msgid "Booting with volume %(volume_id)s at %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2957
+#: nova/compute/manager.py:3009
#, python-format
msgid "Attaching volume %(volume_id)s to %(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2966
+#: nova/compute/manager.py:3018
#, python-format
msgid ""
"Failed to connect to volume %(volume_id)s while attaching at "
"%(mountpoint)s"
msgstr ""
-#: nova/compute/manager.py:2981
+#: nova/compute/manager.py:3033
#, fuzzy, python-format
msgid "Failed to attach volume %(volume_id)s at %(mountpoint)s"
msgstr "å¸è¼‰_Volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3011
+#: nova/compute/manager.py:3063
#, python-format
msgid "Detach volume %(volume_id)s from mountpoint %(mp)s"
msgstr ""
-#: nova/compute/manager.py:3021
+#: nova/compute/manager.py:3073
#, fuzzy
msgid "Detaching volume from unknown instance"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/compute/manager.py:3028
+#: nova/compute/manager.py:3080
#, fuzzy, python-format
msgid "Failed to detach volume %(volume_id)s from %(mp)s"
msgstr "å¸è¼‰_Volume: %(instance_name)s, %(mountpoint)s"
-#: nova/compute/manager.py:3051
+#: nova/compute/manager.py:3103
msgid "Updating volume usage cache with totals"
msgstr ""
-#: nova/compute/manager.py:3087
+#: nova/compute/manager.py:3139
#, python-format
msgid "allocate_port_for_instance returned %(ports)s ports"
msgstr ""
-#: nova/compute/manager.py:3107
+#: nova/compute/manager.py:3159
#, python-format
msgid "Port %(port_id)s is not attached"
msgstr ""
-#: nova/compute/manager.py:3121
+#: nova/compute/manager.py:3173
#, python-format
msgid "Host %(host)s not found"
msgstr ""
-#: nova/compute/manager.py:3265
+#: nova/compute/manager.py:3326
#, python-format
msgid "Pre live migration failed at %(dest)s"
msgstr ""
-#: nova/compute/manager.py:3293
+#: nova/compute/manager.py:3354
msgid "_post_live_migration() is started.."
msgstr ""
-#: nova/compute/manager.py:3348
+#: nova/compute/manager.py:3409
#, python-format
msgid "Migrating instance to %(dest)s finished successfully."
msgstr ""
-#: nova/compute/manager.py:3350
+#: nova/compute/manager.py:3411
msgid ""
"You may see the error \"libvirt: QEMU error: Domain not found: no domain "
"with matching name.\" This error can be safely ignored."
msgstr ""
-#: nova/compute/manager.py:3364
+#: nova/compute/manager.py:3426
msgid "Post operation of migration started"
msgstr ""
-#: nova/compute/manager.py:3393
+#: nova/compute/manager.py:3458
#, python-format
msgid "Failed to get compute_info for %s"
msgstr ""
-#: nova/compute/manager.py:3512
+#: nova/compute/manager.py:3587
msgid "Updated the info_cache for instance"
msgstr ""
-#: nova/compute/manager.py:3557
+#: nova/compute/manager.py:3637
#, python-format
msgid ""
"Found %(migration_count)d unconfirmed migrations older than "
"%(confirm_window)d seconds"
msgstr ""
-#: nova/compute/manager.py:3563
+#: nova/compute/manager.py:3643
#, python-format
msgid "Setting migration %(migration_id)s to error: %(reason)s"
msgstr ""
-#: nova/compute/manager.py:3572
+#: nova/compute/manager.py:3652
#, python-format
msgid ""
"Automatically confirming migration %(migration_id)s for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/compute/manager.py:3579
+#: nova/compute/manager.py:3659
#, python-format
msgid "Instance %(instance_uuid)s not found"
msgstr ""
-#: nova/compute/manager.py:3583
+#: nova/compute/manager.py:3663
msgid "In ERROR state"
msgstr ""
-#: nova/compute/manager.py:3590
+#: nova/compute/manager.py:3670
#, python-format
msgid "In states %(vm_state)s/%(task_state)s, not RESIZED/None"
msgstr ""
-#: nova/compute/manager.py:3599
+#: nova/compute/manager.py:3679
#, python-format
msgid "Error auto-confirming resize: %(e)s. Will retry later."
msgstr ""
-#: nova/compute/manager.py:3616
+#: nova/compute/manager.py:3696
#, python-format
msgid ""
"Running instance usage audit for host %(host)s from %(begin_time)s to "
"%(end_time)s. %(number_instances)s instances."
msgstr ""
-#: nova/compute/manager.py:3635
+#: nova/compute/manager.py:3715
#, python-format
msgid "Failed to generate usage audit for instance on host %s"
msgstr ""
-#: nova/compute/manager.py:3659
+#: nova/compute/manager.py:3739
msgid "Updating bandwidth usage cache"
msgstr ""
-#: nova/compute/manager.py:3776
+#: nova/compute/manager.py:3843
msgid "Updating volume usage cache"
msgstr ""
-#: nova/compute/manager.py:3793
+#: nova/compute/manager.py:3858
msgid "Updating host status"
msgstr ""
-#: nova/compute/manager.py:3820
+#: nova/compute/manager.py:3885
#, python-format
msgid ""
"Found %(num_db_instances)s in the database and %(num_vm_instances)s on "
"the hypervisor."
msgstr ""
-#: nova/compute/manager.py:3825 nova/compute/manager.py:3875
+#: nova/compute/manager.py:3890 nova/compute/manager.py:3940
msgid "During sync_power_state the instance has a pending task. Skip."
msgstr ""
-#: nova/compute/manager.py:3862
+#: nova/compute/manager.py:3927
#, python-format
msgid ""
"During the sync_power process the instance has moved from host %(src)s to"
" host %(dst)s"
msgstr ""
-#: nova/compute/manager.py:3900
+#: nova/compute/manager.py:3965
msgid "Instance shutdown by itself. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3912 nova/compute/manager.py:3921
-#: nova/compute/manager.py:3951
+#: nova/compute/manager.py:3977 nova/compute/manager.py:3986
+#: nova/compute/manager.py:4016
msgid "error during stop() in sync_power_state."
msgstr ""
-#: nova/compute/manager.py:3916
+#: nova/compute/manager.py:3981
msgid "Instance is suspended unexpectedly. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3932
+#: nova/compute/manager.py:3997
msgid "Instance is paused unexpectedly. Ignore."
msgstr ""
-#: nova/compute/manager.py:3938
+#: nova/compute/manager.py:4003
msgid "Instance is unexpectedly not found. Ignore."
msgstr ""
-#: nova/compute/manager.py:3944
+#: nova/compute/manager.py:4009
msgid "Instance is not stopped. Calling the stop API."
msgstr ""
-#: nova/compute/manager.py:3960
+#: nova/compute/manager.py:4025
msgid "Instance is not (soft-)deleted."
msgstr ""
-#: nova/compute/manager.py:3968
+#: nova/compute/manager.py:4033
msgid "CONF.reclaim_instance_interval <= 0, skipping..."
msgstr ""
-#: nova/compute/manager.py:3988
+#: nova/compute/manager.py:4045
msgid "Reclaiming deleted instance"
msgstr ""
-#: nova/compute/manager.py:4015
+#: nova/compute/manager.py:4072
#, python-format
msgid "Deleting orphan compute node %s"
msgstr ""
-#: nova/compute/manager.py:4025 nova/compute/resource_tracker.py:321
+#: nova/compute/manager.py:4082 nova/compute/resource_tracker.py:321
#, python-format
msgid "No service record for host %s"
msgstr ""
-#: nova/compute/manager.py:4066
+#: nova/compute/manager.py:4123
#, python-format
msgid ""
"Detected instance with name label '%(name)s' which is marked as DELETED "
"but still present on host."
msgstr ""
-#: nova/compute/manager.py:4073
+#: nova/compute/manager.py:4130
#, python-format
msgid ""
"Destroying instance with name label '%(name)s' which is marked as DELETED"
" but still present on host."
msgstr ""
-#: nova/compute/manager.py:4080
+#: nova/compute/manager.py:4137
#, python-format
msgid "Unrecognized value '%(action)s' for CONF.running_deleted_instance_action"
msgstr ""
-#: nova/compute/manager.py:4110
+#: nova/compute/manager.py:4164
#, python-format
msgid "Setting instance back to ACTIVE after: %s"
msgstr ""
@@ -4867,18 +5063,18 @@ msgstr ""
msgid "Using %(prefix)s instead of %(req_prefix)s"
msgstr ""
-#: nova/conductor/api.py:380
+#: nova/conductor/api.py:398
msgid ""
"Timed out waiting for nova-conductor. Is it running? Or did this service "
"start before nova-conductor?"
msgstr ""
-#: nova/conductor/manager.py:91
+#: nova/conductor/manager.py:115
#, python-format
msgid "Instance update attempted for '%(key)s' on %(instance_uuid)s"
msgstr ""
-#: nova/conductor/manager.py:262
+#: nova/conductor/manager.py:290
msgid "Invalid block_device_mapping_destroy invocation"
msgstr ""
@@ -4956,54 +5152,70 @@ msgstr ""
msgid "Failed to notify cells of instance destroy"
msgstr ""
-#: nova/db/api.py:673 nova/db/api.py:694
+#: nova/db/api.py:674 nova/db/api.py:695
msgid "Failed to notify cells of instance update"
msgstr ""
-#: nova/db/api.py:734
-msgid "Failed to notify cells of instance info cache update"
-msgstr ""
-
-#: nova/db/api.py:1456
+#: nova/db/api.py:1548
msgid "Failed to notify cells of bw_usage update"
msgstr ""
-#: nova/db/api.py:1591
+#: nova/db/api.py:1685
msgid "Failed to notify cells of instance fault"
msgstr ""
-#: nova/db/sqlalchemy/api.py:157
+#: nova/db/sqlalchemy/api.py:160
#, python-format
msgid "Deadlock detected when running '%(func_name)s': Retrying..."
msgstr ""
-#: nova/db/sqlalchemy/api.py:192
+#: nova/db/sqlalchemy/api.py:195
msgid "model or base_model parameter should be subclass of NovaBase"
msgstr ""
-#: nova/db/sqlalchemy/api.py:205 nova/virt/baremetal/db/sqlalchemy/api.py:61
+#: nova/db/sqlalchemy/api.py:208 nova/virt/baremetal/db/sqlalchemy/api.py:61
#, python-format
msgid "Unrecognized read_deleted value '%s'"
msgstr ""
-#: nova/db/sqlalchemy/api.py:1408
+#: nova/db/sqlalchemy/api.py:661
+#, python-format
+msgid "Invalid floating ip id %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:882
+#, python-format
+msgid "Invalid floating IP %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1167 nova/db/sqlalchemy/api.py:1207
+#, python-format
+msgid "Invalid fixed IP Address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1344
+#, python-format
+msgid "Invalid virtual interface address %s in request"
+msgstr ""
+
+#: nova/db/sqlalchemy/api.py:1437
#, python-format
msgid ""
"Unknown osapi_compute_unique_server_name_scope value: %s Flag must be "
"empty, \"global\" or \"project\""
msgstr ""
-#: nova/db/sqlalchemy/api.py:1546
+#: nova/db/sqlalchemy/api.py:1572
#, python-format
msgid "Invalid instance id %s in request"
msgstr ""
-#: nova/db/sqlalchemy/api.py:2853
+#: nova/db/sqlalchemy/api.py:2931
#, python-format
msgid "Change will make usage less than 0 for the following resources: %(unders)s"
msgstr ""
-#: nova/db/sqlalchemy/api.py:4361
+#: nova/db/sqlalchemy/api.py:4461
#, python-format
msgid ""
"Volume(%s) has lower stats then what is in the database. Instance must "
@@ -5020,56 +5232,60 @@ msgstr ""
msgid "Upgrade DB using Essex release first."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:63
+#: nova/db/sqlalchemy/utils.py:73
#, python-format
msgid ""
"Please specify column %s in col_name_col_instance param. It is required "
"because column has unsupported type by sqlite)."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:69
+#: nova/db/sqlalchemy/utils.py:79
#, python-format
msgid ""
"col_name_col_instance param has wrong type of column instance for column "
"%s It should be instance of sqlalchemy.Column."
msgstr ""
-#: nova/db/sqlalchemy/utils.py:171
+#: nova/db/sqlalchemy/utils.py:181
#, python-format
msgid "Deleted duplicated row with id: %(id)s from table: %(table)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:205
+#: nova/db/sqlalchemy/utils.py:215
#, python-format
msgid "Missing column %(table)s.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:211
+#: nova/db/sqlalchemy/utils.py:221
#, python-format
msgid ""
"Different types in %(table)s.%(column)s and shadow table: %(c_type)s "
"%(shadow_c_type)s"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:220
+#: nova/db/sqlalchemy/utils.py:230
#, python-format
msgid "Extra column %(table)%.%(column)s in shadow table"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:241
+#: nova/db/sqlalchemy/utils.py:250
msgid "Specify `table_name` or `table` param"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:244
+#: nova/db/sqlalchemy/utils.py:253
msgid "Specify only one param `table_name` `table`"
msgstr ""
-#: nova/db/sqlalchemy/utils.py:265
+#: nova/db/sqlalchemy/utils.py:275 nova/db/sqlalchemy/utils.py:279
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:927
#: nova/db/sqlalchemy/migrate_repo/versions/154_add_shadow_tables.py:58
msgid "Exception while creating table."
msgstr ""
+#: nova/db/sqlalchemy/utils.py:287
+msgid "Unsupported id columns type"
+msgstr ""
+
#: nova/db/sqlalchemy/migrate_repo/versions/133_folsom.py:62
msgid "Exception while seeding instance_types table"
msgstr ""
@@ -5105,32 +5321,37 @@ msgstr ""
msgid "Failed to decrypt %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:362
+#: nova/image/s3.py:363
#, python-format
msgid "Failed to untar %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:372
+#: nova/image/s3.py:373
#, python-format
msgid "Failed to upload %(image_location)s to %(image_path)s"
msgstr ""
-#: nova/image/s3.py:396
+#: nova/image/s3.py:385
+#, python-format
+msgid "Image %s was deleted underneath us"
+msgstr ""
+
+#: nova/image/s3.py:400
#, python-format
msgid "Failed to decrypt private key: %s"
msgstr ""
-#: nova/image/s3.py:403
+#: nova/image/s3.py:407
#, python-format
msgid "Failed to decrypt initialization vector: %s"
msgstr ""
-#: nova/image/s3.py:414
+#: nova/image/s3.py:418
#, python-format
msgid "Failed to decrypt image file %(image_file)s: %(err)s"
msgstr ""
-#: nova/image/s3.py:426
+#: nova/image/s3.py:430
msgid "Unsafe filenames in image"
msgstr ""
@@ -5149,15 +5370,19 @@ msgstr ""
msgid "Bad project_id for to_global_ipv6: %s"
msgstr ""
-#: nova/network/api.py:55
+#: nova/network/api.py:56
msgid "instance is a required argument to use @refresh_cache"
msgstr ""
-#: nova/network/api.py:80
+#: nova/network/api.py:90
+msgid "Failed to notify cells of instance info cache update"
+msgstr ""
+
+#: nova/network/api.py:93
msgid "Failed storing info cache"
msgstr ""
-#: nova/network/api.py:235
+#: nova/network/api.py:248
#, python-format
msgid "re-assign floating IP %(address)s from instance %(instance_id)s"
msgstr ""
@@ -5307,67 +5532,67 @@ msgstr ""
msgid "Error deleting conntrack entries for %s"
msgstr ""
-#: nova/network/linux_net.py:977
+#: nova/network/linux_net.py:979
#, python-format
msgid "Pid %d is stale, skip killing dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1022
+#: nova/network/linux_net.py:1024
#, python-format
msgid "Hupping dnsmasq threw %s"
msgstr ""
-#: nova/network/linux_net.py:1024
+#: nova/network/linux_net.py:1026
#, python-format
msgid "Pid %d is stale, relaunching dnsmasq"
msgstr ""
-#: nova/network/linux_net.py:1104
+#: nova/network/linux_net.py:1106
#, python-format
msgid "killing radvd threw %s"
msgstr ""
-#: nova/network/linux_net.py:1106
+#: nova/network/linux_net.py:1108
#, python-format
msgid "Pid %d is stale, relaunching radvd"
msgstr ""
-#: nova/network/linux_net.py:1282
+#: nova/network/linux_net.py:1284
#, python-format
msgid "Net device removed: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1285
+#: nova/network/linux_net.py:1287
#, python-format
msgid "Failed removing net device: '%s'"
msgstr ""
-#: nova/network/linux_net.py:1403
+#: nova/network/linux_net.py:1405
#, python-format
msgid "Starting VLAN interface %s"
msgstr ""
-#: nova/network/linux_net.py:1449
+#: nova/network/linux_net.py:1451
#, python-format
msgid "Starting Bridge %s"
msgstr ""
-#: nova/network/linux_net.py:1461
+#: nova/network/linux_net.py:1463
#, python-format
msgid "Adding interface %(interface)s to bridge %(bridge)s"
msgstr ""
-#: nova/network/linux_net.py:1497
+#: nova/network/linux_net.py:1499
#, python-format
msgid "Failed to add interface: %s"
msgstr ""
-#: nova/network/linux_net.py:1734
+#: nova/network/linux_net.py:1736
#, python-format
msgid "Starting bridge %s "
msgstr ""
-#: nova/network/linux_net.py:1742
+#: nova/network/linux_net.py:1744
#, python-format
msgid "Done starting bridge %s"
msgstr ""
@@ -5529,79 +5754,78 @@ msgstr ""
msgid "Cannot delete domain |%s|"
msgstr ""
-#: nova/network/model.py:379
+#: nova/network/model.py:382
msgid "v4 subnets are required for legacy nw_info"
msgstr ""
-#: nova/network/quantumv2/__init__.py:45
-#, python-format
-msgid "Quantum client authentication failed: %s"
+#: nova/network/quantumv2/__init__.py:67
+msgid "quantum authentication failed"
msgstr ""
-#: nova/network/quantumv2/api.py:152
+#: nova/network/quantumv2/api.py:154
#, python-format
msgid "allocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:155
+#: nova/network/quantumv2/api.py:157
#, python-format
msgid "empty project id for instance %s"
msgstr ""
-#: nova/network/quantumv2/api.py:201
+#: nova/network/quantumv2/api.py:203
#, python-format
msgid ""
"Multiple security groups found matching '%s'. Use an ID to be more "
"specific."
msgstr ""
-#: nova/network/quantumv2/api.py:270
+#: nova/network/quantumv2/api.py:272
msgid "Port not found"
msgstr ""
-#: nova/network/quantumv2/api.py:278
+#: nova/network/quantumv2/api.py:280
#, python-format
msgid "Fail to delete port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:318
+#: nova/network/quantumv2/api.py:320
#, python-format
msgid "deallocate_for_instance() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:327
+#: nova/network/quantumv2/api.py:329
#, python-format
msgid "Failed to delete quantum port %(portid)s "
msgstr ""
-#: nova/network/quantumv2/api.py:349
+#: nova/network/quantumv2/api.py:351
#, python-format
msgid "Failed to delete quantum port %(port_id)s "
msgstr ""
-#: nova/network/quantumv2/api.py:373
+#: nova/network/quantumv2/api.py:375
#, python-format
msgid "get_instance_nw_info() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:405
+#: nova/network/quantumv2/api.py:407
#, python-format
msgid ""
"Unable to update port %(portid)s on subnet %(subnet_id)s with failure: "
"%(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:435
+#: nova/network/quantumv2/api.py:437
#, python-format
msgid "Unable to update port %(portid)s with failure: %(exception)s"
msgstr ""
-#: nova/network/quantumv2/api.py:445
+#: nova/network/quantumv2/api.py:447
#, python-format
msgid "validate_networks() for %s"
msgstr ""
-#: nova/network/quantumv2/api.py:688
+#: nova/network/quantumv2/api.py:690
#, python-format
msgid "Multiple floating IP pools matches found for name '%s'"
msgstr ""
@@ -5611,65 +5835,70 @@ msgstr ""
msgid "Quantum Error creating security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:106
+#: nova/network/security_group/quantum_driver.py:71
+#, python-format
+msgid "Quantum Error updating security group %s"
+msgstr ""
+
+#: nova/network/security_group/quantum_driver.py:124
#, python-format
msgid "Quantum security group %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:109
-#: nova/network/security_group/quantum_driver.py:155
-#: nova/network/security_group/quantum_driver.py:244
+#: nova/network/security_group/quantum_driver.py:127
+#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:262
#, python-format
msgid "Quantum Error: %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:129
+#: nova/network/security_group/quantum_driver.py:147
msgid "Quantum Error getting security groups"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:139
+#: nova/network/security_group/quantum_driver.py:157
msgid "Security group id should be uuid"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:173
+#: nova/network/security_group/quantum_driver.py:191
#, python-format
msgid "Quantum Error getting security group %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:177
-#: nova/network/security_group/quantum_driver.py:342
-#: nova/network/security_group/quantum_driver.py:348
-#: nova/network/security_group/quantum_driver.py:375
-#: nova/network/security_group/quantum_driver.py:390
-#: nova/network/security_group/quantum_driver.py:396
-#: nova/network/security_group/quantum_driver.py:425
+#: nova/network/security_group/quantum_driver.py:195
+#: nova/network/security_group/quantum_driver.py:360
+#: nova/network/security_group/quantum_driver.py:366
+#: nova/network/security_group/quantum_driver.py:393
+#: nova/network/security_group/quantum_driver.py:408
+#: nova/network/security_group/quantum_driver.py:414
+#: nova/network/security_group/quantum_driver.py:443
msgid "Quantum Error:"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:230
+#: nova/network/security_group/quantum_driver.py:248
#, python-format
msgid "Quantum Error unable to delete %s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:241
+#: nova/network/security_group/quantum_driver.py:259
#, python-format
msgid "Quantum security group rule %s not found"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:358
+#: nova/network/security_group/quantum_driver.py:376
#, python-format
msgid ""
"Cannot add security group %(name)s to %(instance)s since the port "
"%(port_id)s does not meet security requirements"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:368
-#: nova/network/security_group/quantum_driver.py:418
+#: nova/network/security_group/quantum_driver.py:386
+#: nova/network/security_group/quantum_driver.py:436
#, python-format
msgid "Adding security group %(security_group_id)s to port %(port_id)s"
msgstr ""
-#: nova/network/security_group/quantum_driver.py:428
+#: nova/network/security_group/quantum_driver.py:446
#, python-format
msgid ""
"Security group %(security_group_name)s not assocaited with the instance "
@@ -5681,6 +5910,25 @@ msgstr ""
msgid "This rule already exists in group %s"
msgstr ""
+#: nova/objects/base.py:54
+#, python-format
+msgid "Error setting %(attr)s"
+msgstr ""
+
+#: nova/objects/base.py:145
+msgid "Invalid version string"
+msgstr ""
+
+#: nova/objects/base.py:199
+#, python-format
+msgid "Unable to instantiate unregistered object type %(objtype)s"
+msgstr ""
+
+#: nova/objects/base.py:301
+#, python-format
+msgid "Cannot load '%(attrname)s' in the base class"
+msgstr ""
+
#: nova/openstack/common/excutils.py:48
#, python-format
msgid "Original exception being dropped: %s"
@@ -5716,17 +5964,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: nova/openstack/common/log.py:347
+#: nova/openstack/common/log.py:336
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: nova/openstack/common/log.py:397
+#: nova/openstack/common/log.py:386
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: nova/openstack/common/log.py:563
+#: nova/openstack/common/log.py:555
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -5823,21 +6071,77 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
+#: nova/openstack/common/service.py:113 nova/openstack/common/service.py:276
+msgid "Full set of CONF:"
+msgstr ""
+
+#: nova/openstack/common/service.py:122 nova/openstack/common/service.py:219
+#, python-format
+msgid "Caught %s, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:165
+msgid "Parent process has died unexpectedly, exiting"
+msgstr ""
+
+#: nova/openstack/common/service.py:201
+msgid "Forking too fast, sleeping"
+msgstr ""
+
+#: nova/openstack/common/service.py:224
+msgid "Unhandled exception"
+msgstr ""
+
+#: nova/openstack/common/service.py:231
+#, python-format
+msgid "Started child %d"
+msgstr ""
+
+#: nova/openstack/common/service.py:241
+#, python-format
+msgid "Starting %d workers"
+msgstr ""
+
+#: nova/openstack/common/service.py:258
+#, python-format
+msgid "Child %(pid)d killed by signal %(sig)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:262
+#, python-format
+msgid "Child %(pid)s exited with status %(code)d"
+msgstr ""
+
+#: nova/openstack/common/service.py:266
+#, python-format
+msgid "pid %d not in child list"
+msgstr ""
+
+#: nova/openstack/common/service.py:294
+#, python-format
+msgid "Caught %s, stopping children"
+msgstr ""
+
+#: nova/openstack/common/service.py:305
+#, python-format
+msgid "Waiting on %d children to exit"
+msgstr ""
+
#: nova/openstack/common/strutils.py:72
#, python-format
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:461
+#: nova/openstack/common/db/sqlalchemy/session.py:462
msgid "DB exception wrapped."
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:512
+#: nova/openstack/common/db/sqlalchemy/session.py:513
#, python-format
msgid "Got mysql server has gone away: %s"
msgstr ""
-#: nova/openstack/common/db/sqlalchemy/session.py:584
+#: nova/openstack/common/db/sqlalchemy/session.py:585
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -6012,18 +6316,23 @@ msgid ""
"endpoint."
msgstr ""
-#: nova/openstack/common/rpc/common.py:281
+#: nova/openstack/common/rpc/common.py:162
+#, python-format
+msgid "Specified RPC version cap, %(version_cap)s, is too low"
+msgstr ""
+
+#: nova/openstack/common/rpc/common.py:285
#, python-format
msgid "Failed to sanitize %(item)s. Key error %(err)s"
msgstr ""
-#: nova/openstack/common/rpc/common.py:303
+#: nova/openstack/common/rpc/common.py:307
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:169
-#: nova/openstack/common/rpc/impl_qpid.py:133
+#: nova/openstack/common/rpc/impl_qpid.py:153
msgid "Failed to process message... skipping it."
msgstr ""
@@ -6052,44 +6361,44 @@ msgid ""
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:609
-#: nova/openstack/common/rpc/impl_qpid.py:404
+#: nova/openstack/common/rpc/impl_qpid.py:457
#, python-format
msgid "Failed to declare consumer for topic '%(topic)s': %(err_str)s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:627
-#: nova/openstack/common/rpc/impl_qpid.py:419
+#: nova/openstack/common/rpc/impl_qpid.py:472
#, python-format
msgid "Timed out waiting for RPC response: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:631
-#: nova/openstack/common/rpc/impl_qpid.py:423
+#: nova/openstack/common/rpc/impl_qpid.py:476
#, python-format
msgid "Failed to consume message from queue: %s"
msgstr ""
#: nova/openstack/common/rpc/impl_kombu.py:670
-#: nova/openstack/common/rpc/impl_qpid.py:458
+#: nova/openstack/common/rpc/impl_qpid.py:511
#, python-format
msgid "Failed to publish message to topic '%(topic)s': %(err_str)s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:352
+#: nova/openstack/common/rpc/impl_qpid.py:399
#, python-format
msgid "Unable to connect to AMQP server: %(e)s. Sleeping %(delay)s seconds"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:358
+#: nova/openstack/common/rpc/impl_qpid.py:405
#, python-format
msgid "Connected to AMQP server on %s"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:371
+#: nova/openstack/common/rpc/impl_qpid.py:418
msgid "Re-established AMQP queues"
msgstr ""
-#: nova/openstack/common/rpc/impl_qpid.py:431
+#: nova/openstack/common/rpc/impl_qpid.py:484
msgid "Error processing message. Skipping it."
msgstr ""
@@ -6351,38 +6660,38 @@ msgstr ""
msgid "Request Spec: %s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:92
+#: nova/scheduler/filter_scheduler.py:97
#, fuzzy, python-format
msgid "Choosing host %(weighed_host)s for instance %(instance_uuid)s"
msgstr "掛載點 %(mountpoint)s 掛載到虛擬機器 %(instance_name)s"
-#: nova/scheduler/filter_scheduler.py:234
+#: nova/scheduler/filter_scheduler.py:239
msgid "Invalid value for 'scheduler_max_attempts', must be >= 1"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:251
+#: nova/scheduler/filter_scheduler.py:256
#, python-format
msgid "Error from last host: %(last_host)s (node %(last_node)s): %(exc)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:283
+#: nova/scheduler/filter_scheduler.py:288
#, python-format
msgid ""
"Exceeded max scheduling attempts %(max_attempts)d for instance "
"%(instance_uuid)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:351
+#: nova/scheduler/filter_scheduler.py:356
#, python-format
msgid "Filtered %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:356
+#: nova/scheduler/filter_scheduler.py:361
#, python-format
msgid "Weighed %(hosts)s"
msgstr ""
-#: nova/scheduler/filter_scheduler.py:398
+#: nova/scheduler/filter_scheduler.py:403
#, python-format
msgid "Unable to migrate %(instance_uuid)s to %(dest)s: Lack of memory"
msgstr ""
@@ -6454,10 +6763,17 @@ msgid "Group affinity: %(host)s in %(configured)s"
msgstr ""
#: nova/scheduler/filters/aggregate_instance_extra_specs.py:49
-#: nova/scheduler/filters/aggregate_instance_extra_specs.py:56
-#: nova/scheduler/filters/compute_capabilities_filter.py:57
#, python-format
-msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. Extra_spec "
+"%(key)s is not in aggregate."
+msgstr ""
+
+#: nova/scheduler/filters/aggregate_instance_extra_specs.py:57
+#, python-format
+msgid ""
+"%(host_state)s fails instance_type extra_specs requirements. "
+"'%(aggregate_vals)s' do not match '%(req)s'"
msgstr ""
#: nova/scheduler/filters/aggregate_multitenancy_isolation.py:44
@@ -6465,6 +6781,11 @@ msgstr ""
msgid "%(host_state)s fails tenant id on aggregate"
msgstr ""
+#: nova/scheduler/filters/compute_capabilities_filter.py:57
+#, python-format
+msgid "%(host_state)s fails instance_type extra_specs requirements"
+msgstr ""
+
#: nova/scheduler/filters/compute_filter.py:40
#, python-format
msgid "%(host_state)s is disabled or has not been heard from in a while"
@@ -6500,14 +6821,14 @@ msgid ""
"capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:66
+#: nova/scheduler/filters/image_props_filter.py:68
#, python-format
msgid ""
"Instance contains properties %(image_props)s that are not provided by the"
" compute node capabilities %(capabilities)s"
msgstr ""
-#: nova/scheduler/filters/image_props_filter.py:82
+#: nova/scheduler/filters/image_props_filter.py:86
#, python-format
msgid "%(host_state)s does not support requested instance_properties"
msgstr ""
@@ -6577,46 +6898,46 @@ msgstr ""
msgid "Returns one member of the [%s] group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:42
+#: nova/servicegroup/drivers/db.py:41
#, python-format
msgid ""
"DB_Driver: join new ServiceGroup member %(member_id)s to the %(group_id)s"
" group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/db.py:46
+#: nova/servicegroup/drivers/db.py:45
msgid "service is a mandatory argument for DB based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/db.py:76
+#: nova/servicegroup/drivers/db.py:72
#, python-format
msgid "DB_Driver: get_all members of the %s group"
msgstr ""
-#: nova/servicegroup/drivers/db.py:99 nova/servicegroup/drivers/mc.py:103
+#: nova/servicegroup/drivers/db.py:95 nova/servicegroup/drivers/mc.py:99
msgid "Recovered model server connection!"
msgstr ""
-#: nova/servicegroup/drivers/db.py:105 nova/servicegroup/drivers/mc.py:109
+#: nova/servicegroup/drivers/db.py:101 nova/servicegroup/drivers/mc.py:105
msgid "model server went away"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:44
+#: nova/servicegroup/drivers/mc.py:43
msgid "memcached_servers not defined"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:52
+#: nova/servicegroup/drivers/mc.py:51
#, python-format
msgid ""
"Memcached_Driver: join new ServiceGroup member %(member_id)s to the "
"%(group_id)s group, service = %(service)s"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:57
+#: nova/servicegroup/drivers/mc.py:56
msgid "service is a mandatory argument for Memcached based ServiceGroup driver"
msgstr ""
-#: nova/servicegroup/drivers/mc.py:78
+#: nova/servicegroup/drivers/mc.py:74
#, python-format
msgid "Memcached_Driver: get_all members of the %s group"
msgstr ""
@@ -6655,12 +6976,12 @@ msgstr ""
msgid "Multipath call failed exit (%(code)s)"
msgstr ""
-#: nova/storage/linuxscsi.py:119
+#: nova/storage/linuxscsi.py:122
#, python-format
msgid "Couldn't find multipath device %(line)s"
msgstr ""
-#: nova/storage/linuxscsi.py:123
+#: nova/storage/linuxscsi.py:126
#, python-format
msgid "Found multipath device = %(mdev)s"
msgstr ""
@@ -6705,43 +7026,6 @@ msgstr ""
msgid "already detached"
msgstr ""
-#: nova/tests/fakelibvirt.py:892
-msgid "Please extend mock libvirt module to support flags"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:896
-msgid "Expected a list for 'auth' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:900
-msgid "Expected a function in 'auth[0]' parameter"
-msgstr ""
-
-#: nova/tests/fakelibvirt.py:904
-msgid "Expected a function in 'auth[1]' parameter"
-msgstr ""
-
-#: nova/tests/test_hypervapi.py:433
-msgid "fake vswitch not found"
-msgstr ""
-
-#: nova/tests/test_misc.py:59
-#, python-format
-msgid ""
-"The following migrations are missing a downgrade:\n"
-"\t%s"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:897
-#, python-format
-msgid "Creating files in %s to simulate guest agent"
-msgstr ""
-
-#: nova/tests/test_xenapi.py:908
-#, python-format
-msgid "Removing simulated guest agent files in %s"
-msgstr ""
-
#: nova/tests/api/test_auth.py:79
msgid "200 Role Match"
msgstr ""
@@ -6754,17 +7038,20 @@ msgstr ""
msgid "unexpected role header"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3340
+#: nova/tests/api/openstack/compute/test_servers.py:3488
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3491
msgid ""
"Quota exceeded for instances: Requested 1, but already used 10 of 10 "
"instances"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3345
+#: nova/tests/api/openstack/compute/test_servers.py:3493
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3496
msgid "Quota exceeded for ram: Requested 4096, but already used 8192 of 10240 ram"
msgstr ""
-#: nova/tests/api/openstack/compute/test_servers.py:3350
+#: nova/tests/api/openstack/compute/test_servers.py:3498
+#: nova/tests/api/openstack/compute/plugins/v3/test_servers.py:3501
msgid "Quota exceeded for cores: Requested 2, but already used 9 of 10 cores"
msgstr ""
@@ -6773,7 +7060,7 @@ msgstr ""
#: nova/tests/compute/test_compute.py:1168
#: nova/tests/compute/test_compute.py:1195
#: nova/tests/compute/test_compute.py:1241
-#: nova/tests/compute/test_compute.py:3762
+#: nova/tests/compute/test_compute.py:4032
#, python-format
msgid "Running instances: %s"
msgstr ""
@@ -6790,25 +7077,32 @@ msgstr ""
msgid "Internal error"
msgstr ""
-#: nova/tests/compute/test_compute.py:3773
+#: nova/tests/compute/test_compute.py:4043
#, python-format
msgid "After force-killing instances: %s"
msgstr ""
-#: nova/tests/compute/test_compute.py:4275
+#: nova/tests/compute/test_compute.py:4543
msgid "wrong host/node"
msgstr ""
-#: nova/tests/compute/test_compute.py:8748
+#: nova/tests/compute/test_compute.py:9144
msgid "spawn error"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:177
+#: nova/tests/db/test_migrations.py:1755
+#, python-format
+msgid ""
+"The following migrations are missing a downgrade:\n"
+"\t%s"
+msgstr ""
+
+#: nova/tests/integrated/test_api_samples.py:181
#, python-format
msgid "%(result_str)s: %(result)s is not a dict."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:191
+#: nova/tests/integrated/test_api_samples.py:195
#, python-format
msgid ""
"Dictionary key mismatch:\n"
@@ -6818,22 +7112,22 @@ msgid ""
"%(res_delta)s\n"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:202
+#: nova/tests/integrated/test_api_samples.py:206
#, python-format
msgid "%(result_str)s: %(result)s is not a list."
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:221
+#: nova/tests/integrated/test_api_samples.py:225
msgid "Extra list items in template:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:225
+#: nova/tests/integrated/test_api_samples.py:229
#, python-format
msgid "Extra list items in %(result_str)s:"
msgstr ""
-#: nova/tests/integrated/test_api_samples.py:246
-#: nova/tests/integrated/test_api_samples.py:261
+#: nova/tests/integrated/test_api_samples.py:250
+#: nova/tests/integrated/test_api_samples.py:265
#, python-format
msgid ""
"Values do not match:\n"
@@ -6895,30 +7189,68 @@ msgstr ""
msgid "Decoding JSON: %s"
msgstr ""
+#: nova/tests/virt/hyperv/test_hypervapi.py:433
+msgid "fake vswitch not found"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:892
+msgid "Please extend mock libvirt module to support flags"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:896
+msgid "Expected a list for 'auth' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:900
+msgid "Expected a function in 'auth[0]' parameter"
+msgstr ""
+
+#: nova/tests/virt/libvirt/fakelibvirt.py:904
+msgid "Expected a function in 'auth[1]' parameter"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_vm_utils.py:370
+#: nova/virt/xenapi/vm_utils.py:2147
+#, python-format
+msgid ""
+"Sparse copy in progress, %(complete_pct).2f%% complete. %(left) bytes "
+"left to copy"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:898
+#, python-format
+msgid "Creating files in %s to simulate guest agent"
+msgstr ""
+
+#: nova/tests/virt/xenapi/test_xenapi.py:909
+#, python-format
+msgid "Removing simulated guest agent files in %s"
+msgstr ""
+
#: nova/virt/configdrive.py:97
#, python-format
msgid "Added %(filepath)s to config drive"
msgstr ""
-#: nova/virt/driver.py:924
+#: nova/virt/driver.py:942
msgid "Event must be an instance of nova.virt.event.Event"
msgstr ""
-#: nova/virt/driver.py:930
+#: nova/virt/driver.py:948
#, python-format
msgid "Exception dispatching event %(event)s: %(ex)s"
msgstr ""
-#: nova/virt/driver.py:952
+#: nova/virt/driver.py:970
msgid "Compute driver option required, but not specified"
msgstr ""
-#: nova/virt/driver.py:955
+#: nova/virt/driver.py:973
#, python-format
msgid "Loading compute driver '%s'"
msgstr ""
-#: nova/virt/driver.py:962
+#: nova/virt/driver.py:980
msgid "Unable to load the virtualization driver"
msgstr ""
@@ -7076,22 +7408,22 @@ msgid ""
"passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:179
+#: nova/virt/baremetal/pxe.py:255 nova/virt/baremetal/tilera.py:170
#, fuzzy, python-format
msgid "Fetching kernel and ramdisk for instance %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:210
+#: nova/virt/baremetal/pxe.py:287 nova/virt/baremetal/tilera.py:201
#, python-format
msgid "Fetching image %(ami)s for instance %(name)s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:246
+#: nova/virt/baremetal/pxe.py:327 nova/virt/baremetal/tilera.py:237
#, fuzzy, python-format
msgid "Injecting files into image for instance %(name)s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:365
+#: nova/virt/baremetal/pxe.py:459 nova/virt/baremetal/tilera.py:356
#, python-format
msgid "Node associated with another instance while waiting for deploy of %s"
msgstr ""
@@ -7111,7 +7443,7 @@ msgstr ""
msgid "PXE deploy failed for instance %s"
msgstr ""
-#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:390
+#: nova/virt/baremetal/pxe.py:477 nova/virt/baremetal/tilera.py:381
#, python-format
msgid "Baremetal node deleted while waiting for deployment of instance %s"
msgstr ""
@@ -7121,28 +7453,28 @@ msgstr ""
msgid "Timeout reached while waiting for PXE deploy of instance %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:154
+#: nova/virt/baremetal/tilera.py:145
#, python-format
msgid ""
"Can not activate Tilera bootloader. The following boot parameters were "
"not passed to baremetal driver: %s"
msgstr ""
-#: nova/virt/baremetal/tilera.py:371
+#: nova/virt/baremetal/tilera.py:362
#, fuzzy, python-format
msgid "Tilera deploy started for instance %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/baremetal/tilera.py:377
+#: nova/virt/baremetal/tilera.py:368
#, fuzzy, python-format
msgid "Tilera deploy completed for instance %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/baremetal/tilera.py:385
+#: nova/virt/baremetal/tilera.py:376
msgid "Node is unknown error state."
msgstr ""
-#: nova/virt/baremetal/tilera.py:388
+#: nova/virt/baremetal/tilera.py:379
#, python-format
msgid "Tilera deploy failed for instance %s"
msgstr ""
@@ -7717,7 +8049,7 @@ msgstr ""
msgid "get_available_resource called"
msgstr ""
-#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3833
+#: nova/virt/hyperv/hostops.py:135 nova/virt/libvirt/driver.py:3867
#: nova/virt/xenapi/host.py:148
msgid "Updating host stats"
msgstr ""
@@ -7889,50 +8221,50 @@ msgstr ""
msgid "finish_revert_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:166
+#: nova/virt/hyperv/migrationops.py:167
#, python-format
msgid "Copying base disk %(base_vhd_path)s to %(base_vhd_copy_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:170
+#: nova/virt/hyperv/migrationops.py:171
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_copy_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:176
+#: nova/virt/hyperv/migrationops.py:177
#, python-format
msgid "Merging base disk %(base_vhd_copy_path)s and diff disk %(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:188
+#: nova/virt/hyperv/migrationops.py:189
#, fuzzy, python-format
msgid "Getting info for disk: %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/hyperv/migrationops.py:193
+#: nova/virt/hyperv/migrationops.py:194
#, python-format
msgid "Resizing disk \"%(vhd_path)s\" to new max size %(new_size)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:204
+#: nova/virt/hyperv/migrationops.py:205
#, python-format
msgid ""
"Reconnecting copied base VHD %(base_vhd_path)s and diff VHD "
"%(diff_vhd_path)s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:213
+#: nova/virt/hyperv/migrationops.py:214
msgid "finish_migration called"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:222
+#: nova/virt/hyperv/migrationops.py:223
#, python-format
msgid "Cannot find boot VHD file: %s"
msgstr ""
-#: nova/virt/hyperv/migrationops.py:235 nova/virt/hyperv/vmops.py:136
+#: nova/virt/hyperv/migrationops.py:236 nova/virt/hyperv/vmops.py:136
msgid "Cannot resize a VHD to a smaller size"
msgstr ""
@@ -8069,12 +8401,12 @@ msgstr ""
msgid "Using config drive for instance: %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1874
+#: nova/virt/hyperv/vmops.py:227 nova/virt/libvirt/driver.py:1880
#, python-format
msgid "Creating config drive at %(path)s"
msgstr ""
-#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1881
+#: nova/virt/hyperv/vmops.py:235 nova/virt/libvirt/driver.py:1887
#, python-format
msgid "Creating config drive failed with error: %s"
msgstr ""
@@ -8233,7 +8565,7 @@ msgstr "å¸è¼‰_Volume: %(instance_name)s, %(mountpoint)s"
msgid "Detaching physical disk from instance: %s"
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:903
+#: nova/virt/hyperv/volumeops.py:186 nova/virt/libvirt/driver.py:909
msgid "Could not determine iscsi initiator name"
msgstr ""
@@ -8267,236 +8599,236 @@ msgstr ""
msgid "Unable to determine disk bus for '%s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:346
+#: nova/virt/libvirt/driver.py:351
#, python-format
msgid "Invalid cachemode %(cache_mode)s specified for disk type %(disk_type)s."
msgstr ""
-#: nova/virt/libvirt/driver.py:552
+#: nova/virt/libvirt/driver.py:558
#, python-format
msgid "Nova requires libvirt version %(major)i.%(minor)i.%(micro)i or greater."
msgstr ""
-#: nova/virt/libvirt/driver.py:560
+#: nova/virt/libvirt/driver.py:566
#, python-format
msgid "Connecting to libvirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:577
+#: nova/virt/libvirt/driver.py:583
#, python-format
msgid "URI %s does not support events"
msgstr ""
-#: nova/virt/libvirt/driver.py:593
+#: nova/virt/libvirt/driver.py:599
msgid "Connection to libvirt broke"
msgstr ""
-#: nova/virt/libvirt/driver.py:615 nova/virt/libvirt/driver.py:618
+#: nova/virt/libvirt/driver.py:621 nova/virt/libvirt/driver.py:624
#, python-format
msgid "Can not handle authentication request for %d credentials"
msgstr ""
-#: nova/virt/libvirt/driver.py:636
+#: nova/virt/libvirt/driver.py:642
#, fuzzy, python-format
msgid "Connection to libvirt failed: %s"
msgstr "連接到glance失敗"
-#: nova/virt/libvirt/driver.py:728
+#: nova/virt/libvirt/driver.py:734
#, python-format
msgid "Error from libvirt during destroy. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:743
+#: nova/virt/libvirt/driver.py:749
msgid "During wait destroy, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:748
+#: nova/virt/libvirt/driver.py:754
msgid "Instance destroyed successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:758
+#: nova/virt/libvirt/driver.py:764
msgid "Instance may be started again."
msgstr ""
-#: nova/virt/libvirt/driver.py:768
+#: nova/virt/libvirt/driver.py:774
msgid "Going to destroy instance again."
msgstr ""
-#: nova/virt/libvirt/driver.py:787
+#: nova/virt/libvirt/driver.py:793
msgid "Error from libvirt during undefineFlags. Retrying with undefine"
msgstr ""
-#: nova/virt/libvirt/driver.py:803
+#: nova/virt/libvirt/driver.py:809
#, python-format
msgid "Error from libvirt during undefine. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:823
+#: nova/virt/libvirt/driver.py:829
msgid "Instance may be still running, destroy it again."
msgstr ""
-#: nova/virt/libvirt/driver.py:829
+#: nova/virt/libvirt/driver.py:835
#, python-format
msgid "Error from libvirt during unfilter. Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:857
+#: nova/virt/libvirt/driver.py:863
#, python-format
msgid "Deleting instance files %(target)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:866
+#: nova/virt/libvirt/driver.py:872
#, python-format
msgid "Failed to cleanup directory %(target)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:909
+#: nova/virt/libvirt/driver.py:915
msgid "Could not determine fibre channel world wide node names"
msgstr ""
-#: nova/virt/libvirt/driver.py:916
+#: nova/virt/libvirt/driver.py:922
msgid "Could not determine fibre channel world wide port names"
msgstr ""
-#: nova/virt/libvirt/driver.py:921
+#: nova/virt/libvirt/driver.py:927
msgid "No Volume Connector found."
msgstr ""
-#: nova/virt/libvirt/driver.py:1043
+#: nova/virt/libvirt/driver.py:1049
msgid "During detach_volume, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1067
+#: nova/virt/libvirt/driver.py:1073
msgid "attaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1087
+#: nova/virt/libvirt/driver.py:1093
msgid "During detach_interface, instance disappeared."
msgstr ""
-#: nova/virt/libvirt/driver.py:1091
+#: nova/virt/libvirt/driver.py:1097
msgid "detaching network adapter failed."
msgstr ""
-#: nova/virt/libvirt/driver.py:1177
+#: nova/virt/libvirt/driver.py:1183
msgid "Beginning live snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1180
+#: nova/virt/libvirt/driver.py:1186
msgid "Beginning cold snapshot process"
msgstr ""
-#: nova/virt/libvirt/driver.py:1209
+#: nova/virt/libvirt/driver.py:1215
msgid "Snapshot extracted, beginning image upload"
msgstr ""
-#: nova/virt/libvirt/driver.py:1221
+#: nova/virt/libvirt/driver.py:1227
msgid "Snapshot image upload complete"
msgstr ""
-#: nova/virt/libvirt/driver.py:1294
+#: nova/virt/libvirt/driver.py:1300
msgid "Instance soft rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1298
+#: nova/virt/libvirt/driver.py:1304
msgid "Failed to soft reboot instance."
msgstr ""
-#: nova/virt/libvirt/driver.py:1333
+#: nova/virt/libvirt/driver.py:1339
msgid "Instance shutdown successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1341
+#: nova/virt/libvirt/driver.py:1347
msgid "Instance may have been rebooted during soft reboot, so return now."
msgstr ""
-#: nova/virt/libvirt/driver.py:1389
+#: nova/virt/libvirt/driver.py:1395
msgid "Instance rebooted successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1535
+#: nova/virt/libvirt/driver.py:1541
msgid "Instance is running"
msgstr ""
-#: nova/virt/libvirt/driver.py:1542 nova/virt/powervm/operator.py:220
+#: nova/virt/libvirt/driver.py:1548 nova/virt/powervm/operator.py:220
msgid "Instance spawned successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:1558
+#: nova/virt/libvirt/driver.py:1564
#, python-format
msgid "data: %(data)r, fpath: %(fpath)r"
msgstr ""
-#: nova/virt/libvirt/driver.py:1595 nova/virt/libvirt/driver.py:1621
+#: nova/virt/libvirt/driver.py:1601 nova/virt/libvirt/driver.py:1627
#, python-format
msgid "Truncated console log returned, %d bytes ignored"
msgstr ""
-#: nova/virt/libvirt/driver.py:1610
+#: nova/virt/libvirt/driver.py:1616
#, fuzzy
msgid "Guest does not have a console available"
msgstr "使用者並沒有管ç†è€…權力"
-#: nova/virt/libvirt/driver.py:1679
+#: nova/virt/libvirt/driver.py:1685
#, python-format
msgid "Path '%(path)s' supports direct I/O"
msgstr ""
-#: nova/virt/libvirt/driver.py:1683
+#: nova/virt/libvirt/driver.py:1689
#, python-format
msgid "Path '%(path)s' does not support direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1688 nova/virt/libvirt/driver.py:1693
+#: nova/virt/libvirt/driver.py:1694 nova/virt/libvirt/driver.py:1699
#, python-format
msgid "Error on '%(path)s' while checking direct I/O: '%(ex)s'"
msgstr ""
-#: nova/virt/libvirt/driver.py:1764
+#: nova/virt/libvirt/driver.py:1770
msgid "Creating image"
msgstr ""
-#: nova/virt/libvirt/driver.py:1865
+#: nova/virt/libvirt/driver.py:1871
msgid "Using config drive"
msgstr ""
-#: nova/virt/libvirt/driver.py:1914
+#: nova/virt/libvirt/driver.py:1920
#, python-format
msgid "Injecting %(inj)s into image %(img_id)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:1924
+#: nova/virt/libvirt/driver.py:1930
#, python-format
msgid "Error injecting data into image %(img_id)s (%(e)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:1981
+#: nova/virt/libvirt/driver.py:1987
#, python-format
msgid ""
"Config requested an explicit CPU model, but the current libvirt "
"hypervisor '%s' does not support selecting CPU models"
msgstr ""
-#: nova/virt/libvirt/driver.py:1987
+#: nova/virt/libvirt/driver.py:1993
msgid "Config requested a custom CPU model, but no model name was provided"
msgstr ""
-#: nova/virt/libvirt/driver.py:1991
+#: nova/virt/libvirt/driver.py:1997
msgid "A CPU model name should not be set when a host CPU model is requested"
msgstr ""
-#: nova/virt/libvirt/driver.py:1995
+#: nova/virt/libvirt/driver.py:2001
#, python-format
msgid "CPU mode '%(mode)s' model '%(model)s' was chosen"
msgstr ""
-#: nova/virt/libvirt/driver.py:2011
+#: nova/virt/libvirt/driver.py:2017
msgid ""
"Passthrough of the host CPU was requested but this libvirt version does "
"not support this feature"
msgstr ""
-#: nova/virt/libvirt/driver.py:2335
+#: nova/virt/libvirt/driver.py:2341
#, python-format
msgid ""
"Start to_xml instance=%(instance)s network_info=%(network_info)s "
@@ -8504,73 +8836,73 @@ msgid ""
"rescue=%(rescue)sblock_device_info=%(block_device_info)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2350
+#: nova/virt/libvirt/driver.py:2356
#, python-format
msgid "End to_xml instance=%(instance)s xml=%(xml)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2367
+#: nova/virt/libvirt/driver.py:2373
#, python-format
msgid ""
"Error from libvirt while looking up %(instance_name)s: [Error Code "
"%(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2545 nova/virt/libvirt/driver.py:2549
+#: nova/virt/libvirt/driver.py:2552 nova/virt/libvirt/driver.py:2556
#, python-format
msgid "Invalid range expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2558
+#: nova/virt/libvirt/driver.py:2565
#, python-format
msgid "Invalid exclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2565
+#: nova/virt/libvirt/driver.py:2572
#, python-format
msgid "Invalid inclusion expression %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2570
+#: nova/virt/libvirt/driver.py:2577
#, python-format
msgid "No CPUs available after parsing %r"
msgstr ""
-#: nova/virt/libvirt/driver.py:2587
+#: nova/virt/libvirt/driver.py:2594
msgid ""
"Cannot get the number of cpu, because this function is not implemented "
"for this platform. "
msgstr ""
-#: nova/virt/libvirt/driver.py:2597
+#: nova/virt/libvirt/driver.py:2604
msgid "Invalid vcpu_pin_set config, out of hypervisor cpu range."
msgstr ""
-#: nova/virt/libvirt/driver.py:2649
+#: nova/virt/libvirt/driver.py:2656
#, python-format
msgid "couldn't obtain the vpu count from domain id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2655
+#: nova/virt/libvirt/driver.py:2662
#, python-format
msgid "List of domains returned by libVirt: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2657
+#: nova/virt/libvirt/driver.py:2664
#, python-format
msgid "libVirt can't find a domain with id: %s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2721
+#: nova/virt/libvirt/driver.py:2728
msgid "libvirt version is too old (does not support getVersion)"
msgstr ""
-#: nova/virt/libvirt/driver.py:2805
+#: nova/virt/libvirt/driver.py:2812
#, fuzzy, python-format
msgid "Trying to get stats for the volume %s"
msgstr "無法å¸è¼‰ Volume %s"
-#: nova/virt/libvirt/driver.py:2818
+#: nova/virt/libvirt/driver.py:2825
#, python-format
msgid ""
"Got volume usage stats for the volume=%(volume)s, instance=%(instance)s, "
@@ -8578,50 +8910,50 @@ msgid ""
"wr_bytes=%(wr_bytes)d"
msgstr ""
-#: nova/virt/libvirt/driver.py:2836
+#: nova/virt/libvirt/driver.py:2843
#, python-format
msgid ""
"Getting block stats failed, device might have been detached. "
"Instance=%(instance_name)s Disk=%(disk)s Code=%(errcode)s Error=%(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:2841
+#: nova/virt/libvirt/driver.py:2848
#, python-format
msgid ""
"Could not find domain in libvirt for instance %s. Cannot get block stats "
"for device"
msgstr ""
-#: nova/virt/libvirt/driver.py:2918
+#: nova/virt/libvirt/driver.py:2925
#, python-format
msgid ""
"Creating tmpfile %s to verify with other compute node that the instance "
"is on the same shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3000
+#: nova/virt/libvirt/driver.py:3006
msgid "Block migration can not be used with shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3008
+#: nova/virt/libvirt/driver.py:3014
msgid "Live migration can not be used without shared storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3045
+#: nova/virt/libvirt/driver.py:3059
#, python-format
msgid ""
"Unable to migrate %(instance_uuid)s: Disk of instance is too "
"large(available on destination host:%(available)s < need:%(necessary)s)"
msgstr ""
-#: nova/virt/libvirt/driver.py:3070
+#: nova/virt/libvirt/driver.py:3084
#, python-format
msgid ""
"Instance launched has CPU info:\n"
"%s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3082
+#: nova/virt/libvirt/driver.py:3096
#, python-format
msgid ""
"CPU doesn't have compatibility.\n"
@@ -8631,67 +8963,67 @@ msgid ""
"Refer to %(u)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3099
+#: nova/virt/libvirt/driver.py:3113
#, python-format
msgid ""
"Creating tmpfile %s to notify to other compute nodes that they should "
"mount the same storage."
msgstr ""
-#: nova/virt/libvirt/driver.py:3147
+#: nova/virt/libvirt/driver.py:3161
#, python-format
msgid "The firewall filter for %s does not exist"
msgstr ""
-#: nova/virt/libvirt/driver.py:3219
+#: nova/virt/libvirt/driver.py:3233
#, python-format
msgid "Live Migration failure: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3312
+#: nova/virt/libvirt/driver.py:3335
#, python-format
msgid "plug_vifs() failed %(cnt)d. Retry up to %(max_retry)d."
msgstr ""
-#: nova/virt/libvirt/driver.py:3424
+#: nova/virt/libvirt/driver.py:3447
#, python-format
msgid ""
"Error from libvirt while getting description of %(instance_name)s: [Error"
" Code %(error_code)s] %(ex)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3441
+#: nova/virt/libvirt/driver.py:3464
#, python-format
msgid "skipping %(path)s since it looks like volume"
msgstr ""
-#: nova/virt/libvirt/driver.py:3446
+#: nova/virt/libvirt/driver.py:3469
#, python-format
msgid "skipping disk for %(instance_name)s as it does not have a path"
msgstr ""
-#: nova/virt/libvirt/driver.py:3487
+#: nova/virt/libvirt/driver.py:3510
#, python-format
msgid "Getting disk size of %(i_name)s: %(e)s"
msgstr ""
-#: nova/virt/libvirt/driver.py:3556
+#: nova/virt/libvirt/driver.py:3579
msgid "Starting migrate_disk_and_power_off"
msgstr ""
-#: nova/virt/libvirt/driver.py:3617
+#: nova/virt/libvirt/driver.py:3647
msgid "Instance running successfully."
msgstr ""
-#: nova/virt/libvirt/driver.py:3623
+#: nova/virt/libvirt/driver.py:3653
msgid "Starting finish_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3685
+#: nova/virt/libvirt/driver.py:3717
msgid "Starting finish_revert_migration"
msgstr ""
-#: nova/virt/libvirt/driver.py:3806
+#: nova/virt/libvirt/driver.py:3840
#, python-format
msgid "Checking instance files accessability%(instance_path)s"
msgstr ""
@@ -8724,11 +9056,11 @@ msgstr ""
msgid "iptables firewall: Setup Basic Filtering"
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:294
+#: nova/virt/libvirt/imagebackend.py:319
msgid "You should specify libvirt_images_volume_group flag to use LVM images."
msgstr ""
-#: nova/virt/libvirt/imagebackend.py:378
+#: nova/virt/libvirt/imagebackend.py:403
#, python-format
msgid "Unknown image_type=%s"
msgstr ""
@@ -8889,7 +9221,7 @@ msgid ""
"available, but %(size)db required by volume %(lv)s."
msgstr ""
-#: nova/virt/libvirt/utils.py:233
+#: nova/virt/libvirt/utils.py:237
#, python-format
msgid ""
"Volume group %(vg)s will not be able to hold sparse volume %(lv)s. "
@@ -8897,17 +9229,17 @@ msgid ""
"%(free_space)db."
msgstr ""
-#: nova/virt/libvirt/utils.py:264
+#: nova/virt/libvirt/utils.py:272
#, python-format
msgid "vg %s must be LVM volume group"
msgstr ""
-#: nova/virt/libvirt/utils.py:293
+#: nova/virt/libvirt/utils.py:301
#, python-format
msgid "Path %s must be LVM logical volume"
msgstr ""
-#: nova/virt/libvirt/utils.py:558
+#: nova/virt/libvirt/utils.py:566
msgid "Can't retrieve root device path from instance libvirt configuration"
msgstr ""
@@ -8995,52 +9327,52 @@ msgid ""
"number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:253
+#: nova/virt/libvirt/volume.py:254
#, python-format
msgid "Found iSCSI node %(disk_dev)s (after %(tries)s rescans)"
msgstr ""
-#: nova/virt/libvirt/volume.py:507 nova/virt/libvirt/volume.py:628
+#: nova/virt/libvirt/volume.py:512 nova/virt/libvirt/volume.py:633
#, python-format
msgid "%s is already mounted"
msgstr ""
-#: nova/virt/libvirt/volume.py:563
+#: nova/virt/libvirt/volume.py:560
#, python-format
msgid "AoE device not found at %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:565
+#: nova/virt/libvirt/volume.py:562
#, python-format
msgid "AoE volume not yet found at: %(aoedevpath)s. Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:579
+#: nova/virt/libvirt/volume.py:577
#, python-format
msgid "Found AoE device %(aoedevpath)s (after %(tries)s rediscover)"
msgstr ""
-#: nova/virt/libvirt/volume.py:707
+#: nova/virt/libvirt/volume.py:704
msgid "We are unable to locate any Fibre Channel devices"
msgstr ""
-#: nova/virt/libvirt/volume.py:716
+#: nova/virt/libvirt/volume.py:713
#, python-format
msgid "Looking for Fibre Channel dev %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:726
+#: nova/virt/libvirt/volume.py:723
msgid "Fibre Channel device not found."
msgstr ""
-#: nova/virt/libvirt/volume.py:729
+#: nova/virt/libvirt/volume.py:726
#, python-format
msgid ""
"Fibre volume not yet found at: %(mount_device)s. Will rescan & retry. "
"Try number: %(tries)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:745
+#: nova/virt/libvirt/volume.py:743
#, python-format
msgid "Found Fibre Channel volume %(mount_device)s (after %(tries)s rescans)"
msgstr ""
@@ -9050,20 +9382,20 @@ msgstr ""
msgid "Multipath device discovered %(device)s"
msgstr ""
-#: nova/virt/libvirt/volume.py:818
+#: nova/virt/libvirt/volume.py:828
msgid "Value required for 'scality_sofs_config'"
msgstr ""
-#: nova/virt/libvirt/volume.py:829
+#: nova/virt/libvirt/volume.py:839
#, python-format
msgid "Cannot access 'scality_sofs_config': %s"
msgstr ""
-#: nova/virt/libvirt/volume.py:835
+#: nova/virt/libvirt/volume.py:845
msgid "Cannot execute /sbin/mount.sofs"
msgstr ""
-#: nova/virt/libvirt/volume.py:850
+#: nova/virt/libvirt/volume.py:860
msgid "Cannot mount Scality SOFS, check syslog for errors"
msgstr ""
@@ -9087,61 +9419,61 @@ msgstr ""
msgid "Ensuring image '%s' exists on IVM"
msgstr ""
-#: nova/virt/powervm/blockdev.py:185
+#: nova/virt/powervm/blockdev.py:186
#, fuzzy, python-format
msgid "Creating logical volume of size %s bytes"
msgstr "找ä¸åˆ°Volume %s"
-#: nova/virt/powervm/blockdev.py:188
+#: nova/virt/powervm/blockdev.py:189
#, python-format
msgid "Copying image to the device '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:191
+#: nova/virt/powervm/blockdev.py:192
msgid "Error while creating logical volume from image. Will attempt cleanup."
msgstr ""
-#: nova/virt/powervm/blockdev.py:198
+#: nova/virt/powervm/blockdev.py:200
msgid "Error while attempting cleanup of failed deploy to logical volume."
msgstr ""
-#: nova/virt/powervm/blockdev.py:244
+#: nova/virt/powervm/blockdev.py:246
msgid "Snapshot added to glance."
msgstr ""
-#: nova/virt/powervm/blockdev.py:250
+#: nova/virt/powervm/blockdev.py:252
#, python-format
msgid "Failed to clean up snapshot file %(snapshot_file_path)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:335
+#: nova/virt/powervm/blockdev.py:337
msgid "Could not create logical volume. No space left on any volume group."
msgstr ""
-#: nova/virt/powervm/blockdev.py:426 nova/virt/powervm/blockdev.py:498
+#: nova/virt/powervm/blockdev.py:437 nova/virt/powervm/blockdev.py:517
#, fuzzy
msgid "Unable to get checksum"
msgstr "無法å¸è¼‰ Volume %s"
-#: nova/virt/powervm/blockdev.py:429 nova/virt/powervm/blockdev.py:521
+#: nova/virt/powervm/blockdev.py:444 nova/virt/powervm/blockdev.py:533
msgid "Image checksums do not match"
msgstr ""
-#: nova/virt/powervm/blockdev.py:450
+#: nova/virt/powervm/blockdev.py:469
#, python-format
msgid "Image found on host at '%s'"
msgstr ""
-#: nova/virt/powervm/blockdev.py:458
+#: nova/virt/powervm/blockdev.py:477
msgid "Uncompressed image file not found"
msgstr ""
-#: nova/virt/powervm/blockdev.py:542 nova/virt/powervm/operator.py:674
+#: nova/virt/powervm/blockdev.py:555 nova/virt/powervm/operator.py:677
#, python-format
msgid "Found error stream for command \"%(cmd)s\": %(error_text)s"
msgstr ""
-#: nova/virt/powervm/blockdev.py:559 nova/virt/powervm/operator.py:691
+#: nova/virt/powervm/blockdev.py:572 nova/virt/powervm/operator.py:694
#, python-format
msgid "Found error stream for command \"%(command)s\": %(error_text)s"
msgstr ""
@@ -9188,7 +9520,7 @@ msgstr ""
msgid "%(inst_name)s captured in %(snapshot_time)s seconds"
msgstr ""
-#: nova/virt/powervm/driver.py:305
+#: nova/virt/powervm/driver.py:306
#, python-format
msgid "Unrecognized root disk information: %s"
msgstr ""
@@ -9340,27 +9672,27 @@ msgstr ""
msgid "VMware Cluster %s is not found"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:456
+#: nova/virt/vmwareapi/driver.py:457
#, python-format
msgid "In vmwareapi:_create_session, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:539
+#: nova/virt/vmwareapi/driver.py:540
#, python-format
msgid "In vmwareapi:_call_method, got this exception: %s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:575
+#: nova/virt/vmwareapi/driver.py:576
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: success"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:580
+#: nova/virt/vmwareapi/driver.py:581
#, python-format
msgid "Task [%(task_name)s] %(task_ref)s status: error %(error_info)s"
msgstr ""
-#: nova/virt/vmwareapi/driver.py:584
+#: nova/virt/vmwareapi/driver.py:585
#, python-format
msgid "In vmwareapi:_poll_task, Got this error %s"
msgstr ""
@@ -9426,18 +9758,18 @@ msgstr ""
msgid "Glance image %(image_id)s is in unknown state - %(state)s"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:138
+#: nova/virt/vmwareapi/network_util.py:135
msgid ""
"ESX SOAP server returned an empty port group for the host system in its "
"response"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:164
+#: nova/virt/vmwareapi/network_util.py:161
#, python-format
msgid "Creating Port Group with name %s on the ESX host"
msgstr ""
-#: nova/virt/vmwareapi/network_util.py:178
+#: nova/virt/vmwareapi/network_util.py:175
#, python-format
msgid "Created Port Group with name %s on the ESX host"
msgstr ""
@@ -9770,54 +10102,54 @@ msgstr ""
msgid "Renamed the VM from %s"
msgstr "找ä¸åˆ°Volume %s"
-#: nova/virt/vmwareapi/vmops.py:1019
+#: nova/virt/vmwareapi/vmops.py:1022
#, python-format
msgid "Migrating VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1031
+#: nova/virt/vmwareapi/vmops.py:1034
#, python-format
msgid "Migrated VM to host %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1041 nova/virt/xenapi/vmops.py:1374
+#: nova/virt/vmwareapi/vmops.py:1044 nova/virt/xenapi/vmops.py:1377
#, python-format
msgid "Found %(instance_count)d hung reboots older than %(timeout)d seconds"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1045
+#: nova/virt/vmwareapi/vmops.py:1048
#, python-format
msgid "Automatically hard rebooting %d"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1081
+#: nova/virt/vmwareapi/vmops.py:1084
msgid "get_diagnostics not implemented for vmwareapi"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1163
+#: nova/virt/vmwareapi/vmops.py:1166
msgid "Reconfiguring VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1169
+#: nova/virt/vmwareapi/vmops.py:1172
msgid "Reconfigured VM instance to set the machine id"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1183
+#: nova/virt/vmwareapi/vmops.py:1186
#, python-format
msgid "Reconfiguring VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1190
+#: nova/virt/vmwareapi/vmops.py:1193
#, python-format
msgid "Reconfigured VM instance to enable vnc on port - %(port)s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1283
+#: nova/virt/vmwareapi/vmops.py:1286
#, python-format
msgid "Creating directory with path %s"
msgstr ""
-#: nova/virt/vmwareapi/vmops.py:1289
+#: nova/virt/vmwareapi/vmops.py:1292
#, python-format
msgid "Created directory with path %s"
msgstr ""
@@ -9940,107 +10272,111 @@ msgstr "無法å¸è¼‰ Volume %s"
msgid "Mountpoint %(mountpoint)s detached from instance %(instance_name)s"
msgstr "掛載點 %(mountpoint)s 從虛擬機器 %(instance_name)s å¸è¼‰"
-#: nova/virt/xenapi/agent.py:88 nova/virt/xenapi/vmops.py:1616
+#: nova/virt/xenapi/agent.py:101 nova/virt/xenapi/vmops.py:1619
#, python-format
msgid "TIMEOUT: The call to %(method)s timed out. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:92 nova/virt/xenapi/vmops.py:1620
+#: nova/virt/xenapi/agent.py:105 nova/virt/xenapi/vmops.py:1623
#, python-format
msgid ""
"NOT IMPLEMENTED: The call to %(method)s is not supported by the agent. "
"args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:97 nova/virt/xenapi/vmops.py:1625
+#: nova/virt/xenapi/agent.py:110 nova/virt/xenapi/vmops.py:1628
#, python-format
msgid "The call to %(method)s returned an error: %(e)s. args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:107
+#: nova/virt/xenapi/agent.py:120
#, python-format
msgid ""
"The agent call to %(method)s returned an invalid response: %(ret)r. "
"path=%(path)s; args=%(args)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:117
+#: nova/virt/xenapi/agent.py:130
#, python-format
msgid "Failed to query agent version: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:136
+#: nova/virt/xenapi/agent.py:149
msgid "Querying agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:150
+#: nova/virt/xenapi/agent.py:163
msgid "Reached maximum time attempting to query agent version"
msgstr ""
-#: nova/virt/xenapi/agent.py:158
+#: nova/virt/xenapi/agent.py:171
#, python-format
msgid "Updating agent to %s"
msgstr ""
-#: nova/virt/xenapi/agent.py:166
+#: nova/virt/xenapi/agent.py:179
#, python-format
msgid "Failed to update agent: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:180
+#: nova/virt/xenapi/agent.py:193
msgid "Setting admin password"
msgstr ""
-#: nova/virt/xenapi/agent.py:191
+#: nova/virt/xenapi/agent.py:204
#, python-format
msgid "Failed to exchange keys: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:211
+#: nova/virt/xenapi/agent.py:224
#, python-format
msgid "Failed to update password: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:232
+#: nova/virt/xenapi/agent.py:245
msgid "Skipping setting of ssh key for Windows."
msgstr ""
-#: nova/virt/xenapi/agent.py:247
+#: nova/virt/xenapi/agent.py:260
#, python-format
msgid "Injecting file path: %r"
msgstr ""
-#: nova/virt/xenapi/agent.py:260
+#: nova/virt/xenapi/agent.py:273
#, python-format
msgid "Failed to inject file: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:267
+#: nova/virt/xenapi/agent.py:280
msgid "Resetting network"
msgstr ""
-#: nova/virt/xenapi/agent.py:273
+#: nova/virt/xenapi/agent.py:286
#, python-format
msgid "Failed to reset network: %(resp)r"
msgstr ""
-#: nova/virt/xenapi/agent.py:296
+#: nova/virt/xenapi/agent.py:309
msgid ""
"XenServer tools installed in this image are capable of network injection."
" Networking files will not bemanipulated"
msgstr ""
-#: nova/virt/xenapi/agent.py:304
+#: nova/virt/xenapi/agent.py:317
msgid ""
"XenServer tools are present in this image but are not capable of network "
"injection"
msgstr ""
-#: nova/virt/xenapi/agent.py:308
+#: nova/virt/xenapi/agent.py:321
msgid "XenServer tools are not installed in this image"
msgstr ""
-#: nova/virt/xenapi/agent.py:360
+#: nova/virt/xenapi/agent.py:335
+msgid "Invalid 'agent_present' value. Falling back to the default."
+msgstr ""
+
+#: nova/virt/xenapi/agent.py:388
#, python-format
msgid "OpenSSL error: %s"
msgstr ""
@@ -10056,24 +10392,24 @@ msgstr ""
msgid "Failure while cleaning up attached VDIs"
msgstr ""
-#: nova/virt/xenapi/driver.py:345
+#: nova/virt/xenapi/driver.py:346
#, python-format
msgid "Could not determine key: %s"
msgstr ""
-#: nova/virt/xenapi/driver.py:561
+#: nova/virt/xenapi/driver.py:562
msgid "Host startup on XenServer is not supported."
msgstr ""
-#: nova/virt/xenapi/driver.py:621
+#: nova/virt/xenapi/driver.py:622
msgid "Unable to log in to XenAPI (is the Dom0 disk full?)"
msgstr ""
-#: nova/virt/xenapi/driver.py:661
+#: nova/virt/xenapi/driver.py:662
msgid "Host is member of a pool, but DB says otherwise"
msgstr ""
-#: nova/virt/xenapi/driver.py:745 nova/virt/xenapi/driver.py:759
+#: nova/virt/xenapi/driver.py:746 nova/virt/xenapi/driver.py:760
#, python-format
msgid "Got exception: %s"
msgstr ""
@@ -10210,374 +10546,367 @@ msgid ""
"Expected %(vlan_num)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:273
+#: nova/virt/xenapi/vm_utils.py:275
msgid "Created VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:285
+#: nova/virt/xenapi/vm_utils.py:287
msgid "VM destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:290 nova/virt/xenapi/vm_utils.py:305
+#: nova/virt/xenapi/vm_utils.py:292 nova/virt/xenapi/vm_utils.py:307
msgid "VM already halted, skipping shutdown..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:294
+#: nova/virt/xenapi/vm_utils.py:296
msgid "Shutting down VM (cleanly)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:309
+#: nova/virt/xenapi/vm_utils.py:311
msgid "Shutting down VM (hard)"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:347
+#: nova/virt/xenapi/vm_utils.py:349
#, python-format
msgid "VBD not found in instance %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:364
+#: nova/virt/xenapi/vm_utils.py:366
#, python-format
msgid "VBD %s already detached"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:367
+#: nova/virt/xenapi/vm_utils.py:369
#, python-format
msgid "VBD %(vbd_ref)s detach rejected, attempt %(num_attempt)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:372
+#: nova/virt/xenapi/vm_utils.py:374
#, python-format
msgid "Unable to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:377
+#: nova/virt/xenapi/vm_utils.py:379
#, python-format
msgid "Reached maximum number of retries trying to unplug VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:388
+#: nova/virt/xenapi/vm_utils.py:390
#, python-format
msgid "Unable to destroy VBD %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:410
+#: nova/virt/xenapi/vm_utils.py:412
#, python-format
msgid "Creating %(vbd_type)s-type VBD for VM %(vm_ref)s, VDI %(vdi_ref)s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:413
+#: nova/virt/xenapi/vm_utils.py:415
#, python-format
msgid "Created VBD %(vbd_ref)s for VM %(vm_ref)s, VDI %(vdi_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:439
+#: nova/virt/xenapi/vm_utils.py:441
#, python-format
msgid "Unable to destroy VDI %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:466
+#: nova/virt/xenapi/vm_utils.py:468
#, python-format
msgid ""
"Created VDI %(vdi_ref)s (%(name_label)s, %(virtual_size)s, %(read_only)s)"
" on %(sr_ref)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:480
+#: nova/virt/xenapi/vm_utils.py:482
msgid "SR not present and could not be introduced"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:505
+#: nova/virt/xenapi/vm_utils.py:507
#, python-format
msgid "block device info: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:591
+#: nova/virt/xenapi/vm_utils.py:593
#, python-format
msgid "Cloned VDI %(vdi_ref)s from VDI %(vdi_to_clone_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:636
+#: nova/virt/xenapi/vm_utils.py:638
#, python-format
msgid "No primary VDI found for %(vm_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:649
+#: nova/virt/xenapi/vm_utils.py:651
msgid "Starting snapshot for VM"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:699
+#: nova/virt/xenapi/vm_utils.py:701
#, python-format
msgid "Destroying cached VDI '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:952
+#: nova/virt/xenapi/vm_utils.py:954
#, python-format
msgid ""
"Fast cloning is only supported on default local SR of type ext. SR on "
"this system was found to be of type %(sr_type)s. Ignoring the cow flag."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1008
+#: nova/virt/xenapi/vm_utils.py:1010
#, python-format
msgid "Unrecognized cache_images value '%s', defaulting to True"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1042
+#: nova/virt/xenapi/vm_utils.py:1044
#, python-format
msgid "Fetched VDIs of type '%(vdi_type)s' with UUID '%(vdi_uuid)s'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1054
+#: nova/virt/xenapi/vm_utils.py:1056
#, python-format
msgid ""
"download_vhd %(image_id)s, attempt %(attempt_num)d/%(max_attempts)d, "
"params: %(params)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1067
+#: nova/virt/xenapi/vm_utils.py:1069
#, python-format
msgid "download_vhd failed: %r"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1102
+#: nova/virt/xenapi/vm_utils.py:1104
#, python-format
msgid "Invalid value '%s' for xenapi_torrent_images"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1113
+#: nova/virt/xenapi/vm_utils.py:1115
#, python-format
msgid "Asking xapi to fetch vhd image %(image_id)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1188
+#: nova/virt/xenapi/vm_utils.py:1190
#, python-format
msgid "vdi_uuid=%(cur_vdi_uuid)s vdi_size_bytes=%(vdi_size_bytes)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1203
+#: nova/virt/xenapi/vm_utils.py:1206
#, python-format
-msgid "image_size_bytes=%(size_bytes)d, allowed_size_bytes=%(allowed_size_bytes)d"
+msgid "Image size %(size)d exceeded instance_type allowed size %(allowed_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1207
-#, python-format
-msgid ""
-"Image size %(size_bytes)d exceeded instance_type allowed size "
-"%(allowed_size_bytes)d"
-msgstr ""
-
-#: nova/virt/xenapi/vm_utils.py:1229
+#: nova/virt/xenapi/vm_utils.py:1230
#, python-format
msgid "Fetching image %(image_id)s, type %(image_type_str)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1242
+#: nova/virt/xenapi/vm_utils.py:1243
#, python-format
msgid "Size for image %(image_id)s: %(virtual_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1251
+#: nova/virt/xenapi/vm_utils.py:1252
#, python-format
msgid ""
"Kernel/Ramdisk image is too large: %(vdi_size)d bytes, max %(max_size)d "
"bytes"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1270
+#: nova/virt/xenapi/vm_utils.py:1271
#, python-format
msgid "Copying VDI %s to /boot/guest on dom0"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1284
+#: nova/virt/xenapi/vm_utils.py:1285
#, python-format
msgid "Kernel/Ramdisk VDI %s destroyed"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1293
+#: nova/virt/xenapi/vm_utils.py:1294
msgid "Failed to fetch glance image"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1334
+#: nova/virt/xenapi/vm_utils.py:1335
#, python-format
msgid "Detected %(image_type_str)s format for image %(image_ref)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1365
+#: nova/virt/xenapi/vm_utils.py:1366
#, python-format
msgid "Looking up vdi %s for PV kernel"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1383
+#: nova/virt/xenapi/vm_utils.py:1384
#, python-format
msgid ""
"Image format is None: trying to determine PV status using pygrub; if "
"instance with vdi %s does not boot correctly, try with image metadata."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1389
+#: nova/virt/xenapi/vm_utils.py:1390
#, python-format
msgid "Unknown image format %(disk_image_type)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1420
+#: nova/virt/xenapi/vm_utils.py:1421
#, python-format
msgid "VDI %s is still available"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1523
+#: nova/virt/xenapi/vm_utils.py:1524
#, python-format
msgid "Unable to parse rrd of %(vm_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1550
+#: nova/virt/xenapi/vm_utils.py:1551
#, python-format
msgid "Re-scanning SR %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1578
+#: nova/virt/xenapi/vm_utils.py:1579
#, python-format
msgid "Flag sr_matching_filter '%s' does not respect formatting convention"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1596
+#: nova/virt/xenapi/vm_utils.py:1597
msgid ""
"XenAPI is unable to find a Storage Repository to install guest instances "
"on. Please check your configuration and/or configure the flag "
"'sr_matching_filter'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1609
+#: nova/virt/xenapi/vm_utils.py:1610
msgid "Cannot find SR of content-type ISO"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1617
+#: nova/virt/xenapi/vm_utils.py:1618
#, python-format
msgid "ISO: looking at SR %(sr_rec)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1619
+#: nova/virt/xenapi/vm_utils.py:1620
msgid "ISO: not iso content"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1622
+#: nova/virt/xenapi/vm_utils.py:1623
msgid "ISO: iso content_type, no 'i18n-key' key"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1625
+#: nova/virt/xenapi/vm_utils.py:1626
msgid "ISO: iso content_type, i18n-key value not 'local-storage-iso'"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1629
+#: nova/virt/xenapi/vm_utils.py:1630
msgid "ISO: SR MATCHing our criteria"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1631
+#: nova/virt/xenapi/vm_utils.py:1632
msgid "ISO: ISO, looking to see if it is host local"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1634
+#: nova/virt/xenapi/vm_utils.py:1635
#, python-format
msgid "ISO: PBD %(pbd_ref)s disappeared"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1637
+#: nova/virt/xenapi/vm_utils.py:1638
#, python-format
msgid "ISO: PBD matching, want %(pbd_rec)s, have %(host)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1640
+#: nova/virt/xenapi/vm_utils.py:1641
msgid "ISO: SR with local PBD"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1662
+#: nova/virt/xenapi/vm_utils.py:1663
#, python-format
msgid ""
"Unable to obtain RRD XML for VM %(vm_uuid)s with server details: "
"%(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1678
+#: nova/virt/xenapi/vm_utils.py:1679
#, python-format
msgid "Unable to obtain RRD XML updates with server details: %(server)s."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1732
+#: nova/virt/xenapi/vm_utils.py:1733
#, python-format
msgid "Invalid statistics data from Xenserver: %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1792
+#: nova/virt/xenapi/vm_utils.py:1793
#, python-format
msgid "VHD %(vdi_uuid)s has parent %(parent_uuid)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1879
+#: nova/virt/xenapi/vm_utils.py:1880
#, python-format
msgid ""
"Parent %(parent_uuid)s doesn't match original parent "
"%(original_parent_uuid)s, waiting for coalesce..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1889
+#: nova/virt/xenapi/vm_utils.py:1890
#, python-format
msgid "VHD coalesce attempts exceeded (%(max_attempts)d), giving up..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1924
+#: nova/virt/xenapi/vm_utils.py:1925
#, python-format
msgid "Timeout waiting for device %s to be created"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1944
+#: nova/virt/xenapi/vm_utils.py:1945
#, python-format
msgid "Disconnecting stale VDI %s from compute domU"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1957
+#: nova/virt/xenapi/vm_utils.py:1958
#, python-format
msgid "Plugging VBD %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1960
+#: nova/virt/xenapi/vm_utils.py:1961
#, python-format
msgid "Plugging VBD %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1962
+#: nova/virt/xenapi/vm_utils.py:1963
#, python-format
msgid "VBD %(vbd_ref)s plugged as %(orig_dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1965
+#: nova/virt/xenapi/vm_utils.py:1966
#, python-format
msgid "VBD %(vbd_ref)s plugged into wrong dev, remapping to %(dev)s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1970
+#: nova/virt/xenapi/vm_utils.py:1971
#, python-format
msgid "Destroying VBD for VDI %s ... "
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:1978
+#: nova/virt/xenapi/vm_utils.py:1979
#, python-format
msgid "Destroying VBD for VDI %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2005
+#: nova/virt/xenapi/vm_utils.py:2006
#, python-format
msgid "Running pygrub against %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2013
+#: nova/virt/xenapi/vm_utils.py:2014
#, python-format
msgid "Found Xen kernel %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2015
+#: nova/virt/xenapi/vm_utils.py:2016
msgid "No Xen kernel found. Booting HVM."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2017
+#: nova/virt/xenapi/vm_utils.py:2018
msgid ""
"Error while executing pygrub! Please, ensure the binary is installed "
"correctly, and available in your PATH; on some Linux distros, pygrub may "
@@ -10585,62 +10914,62 @@ msgid ""
"mode."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2034
+#: nova/virt/xenapi/vm_utils.py:2035
msgid "Partitions:"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2040
+#: nova/virt/xenapi/vm_utils.py:2041
#, python-format
msgid " %(num)s: %(ptype)s %(size)d sectors"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2065
+#: nova/virt/xenapi/vm_utils.py:2066
#, python-format
msgid ""
"Writing partition table %(primary_first)d %(primary_last)d to "
"%(dev_path)s..."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2078
+#: nova/virt/xenapi/vm_utils.py:2079
#, python-format
msgid "Writing partition table %s done."
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2119
+#: nova/virt/xenapi/vm_utils.py:2120
#, python-format
msgid ""
"Resize down not allowed because minimum filesystem sectors "
"%(min_sectors)d is too big for target sectors %(new_sectors)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2150
+#: nova/virt/xenapi/vm_utils.py:2162
#, python-format
msgid ""
"Starting sparse_copy src=%(src_path)s dst=%(dst_path)s "
"virtual_size=%(virtual_size)d block_size=%(block_size)d"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2183
+#: nova/virt/xenapi/vm_utils.py:2197
#, python-format
msgid ""
"Finished sparse_copy in %(duration).2f secs, %(compression_pct).2f%% "
"reduction in size"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2235
+#: nova/virt/xenapi/vm_utils.py:2249
msgid "Manipulating interface files directly"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2244
+#: nova/virt/xenapi/vm_utils.py:2258
#, python-format
msgid "Failed to mount filesystem (expected for non-linux instances): %s"
msgstr ""
-#: nova/virt/xenapi/vm_utils.py:2356
+#: nova/virt/xenapi/vm_utils.py:2370
msgid "This domU must be running on the host specified by xenapi_connection_url"
msgstr ""
-#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:801
+#: nova/virt/xenapi/vmops.py:139 nova/virt/xenapi/vmops.py:804
#, python-format
msgid "Updating progress to %(progress)d"
msgstr ""
@@ -10650,207 +10979,207 @@ msgstr ""
msgid "Importing image upload handler: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:187
+#: nova/virt/xenapi/vmops.py:189
msgid "Error: Agent is disabled"
msgstr ""
-#: nova/virt/xenapi/vmops.py:301
+#: nova/virt/xenapi/vmops.py:308
msgid "Starting instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:387
+#: nova/virt/xenapi/vmops.py:394
msgid "Removing kernel/ramdisk files from dom0"
msgstr ""
-#: nova/virt/xenapi/vmops.py:460
+#: nova/virt/xenapi/vmops.py:467
#, python-format
msgid "Block device information present: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:491
+#: nova/virt/xenapi/vmops.py:498
msgid "Failed to spawn, rolling back"
msgstr ""
-#: nova/virt/xenapi/vmops.py:590
+#: nova/virt/xenapi/vmops.py:593
msgid "Auto configuring disk, attempting to resize partition..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:636
+#: nova/virt/xenapi/vmops.py:639
msgid "Starting VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:642
+#: nova/virt/xenapi/vmops.py:645
msgid "Waiting for instance state to become running"
msgstr ""
-#: nova/virt/xenapi/vmops.py:656
+#: nova/virt/xenapi/vmops.py:659
#, python-format
msgid ""
"Latest agent build for %(hypervisor)s/%(os)s/%(architecture)s is "
"%(version)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:659
+#: nova/virt/xenapi/vmops.py:662
#, python-format
msgid "No agent build found for %(hypervisor)s/%(os)s/%(architecture)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:670
+#: nova/virt/xenapi/vmops.py:673
#, python-format
msgid "Instance agent version: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:701
+#: nova/virt/xenapi/vmops.py:704
msgid "Setting VCPU weight"
msgstr ""
-#: nova/virt/xenapi/vmops.py:712
+#: nova/virt/xenapi/vmops.py:715
#, python-format
msgid "Could not find VM with name %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:770
+#: nova/virt/xenapi/vmops.py:773
msgid "Finished snapshot and upload for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:774
+#: nova/virt/xenapi/vmops.py:777
#, python-format
msgid "Migrating VHD '%(vdi_uuid)s' with seq_num %(seq_num)d"
msgstr ""
-#: nova/virt/xenapi/vmops.py:782
+#: nova/virt/xenapi/vmops.py:785
msgid "Failed to transfer vhd to new host"
msgstr ""
-#: nova/virt/xenapi/vmops.py:808
+#: nova/virt/xenapi/vmops.py:811
msgid "VM was already shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:812
+#: nova/virt/xenapi/vmops.py:815
msgid "Clean shutdown did not complete successfully, trying hard shutdown."
msgstr ""
-#: nova/virt/xenapi/vmops.py:816
+#: nova/virt/xenapi/vmops.py:819
#, fuzzy
msgid "Unable to terminate instance."
msgstr "無法掛載Volume 到虛擬機器 %s"
-#: nova/virt/xenapi/vmops.py:821
+#: nova/virt/xenapi/vmops.py:824
msgid "Resize down not allowed without auto_disk_config"
msgstr ""
-#: nova/virt/xenapi/vmops.py:874
+#: nova/virt/xenapi/vmops.py:877
msgid ""
"_migrate_disk_resizing_down failed. Restoring orig vm due_to: "
"%{exception}."
msgstr ""
-#: nova/virt/xenapi/vmops.py:990
+#: nova/virt/xenapi/vmops.py:993
#, python-format
msgid "Resizing up VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
msgstr ""
-#: nova/virt/xenapi/vmops.py:995
+#: nova/virt/xenapi/vmops.py:998
msgid "Resize complete"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1039
+#: nova/virt/xenapi/vmops.py:1042
msgid "Starting halted instance found during reboot"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1045
+#: nova/virt/xenapi/vmops.py:1048
msgid ""
"Reboot failed due to bad volumes, detaching bad volumes and starting "
"halted instance"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1139
+#: nova/virt/xenapi/vmops.py:1142
msgid "Unable to find root VBD/VDI for VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1143
+#: nova/virt/xenapi/vmops.py:1146
msgid "Destroying VDIs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1170
+#: nova/virt/xenapi/vmops.py:1173
msgid "Using RAW or VHD, skipping kernel and ramdisk deletion"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1177
+#: nova/virt/xenapi/vmops.py:1180
msgid "instance has a kernel or ramdisk but not both"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1184
+#: nova/virt/xenapi/vmops.py:1187
msgid "kernel/ramdisk files removed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1211
+#: nova/virt/xenapi/vmops.py:1214
msgid "Destroying VM"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1240
+#: nova/virt/xenapi/vmops.py:1243
msgid "VM is not present, skipping destroy..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1291
+#: nova/virt/xenapi/vmops.py:1294
#, python-format
msgid "Instance is already in Rescue Mode: %s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1325
+#: nova/virt/xenapi/vmops.py:1328
msgid "VM is not present, skipping soft delete..."
msgstr ""
-#: nova/virt/xenapi/vmops.py:1378
+#: nova/virt/xenapi/vmops.py:1381
msgid "Automatically hard rebooting"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1518
+#: nova/virt/xenapi/vmops.py:1521
msgid "Injecting network info to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1537
+#: nova/virt/xenapi/vmops.py:1540
msgid "Creating vifs"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1546
+#: nova/virt/xenapi/vmops.py:1549
#, python-format
msgid "Creating VIF for network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1549
+#: nova/virt/xenapi/vmops.py:1552
#, python-format
msgid "Created VIF %(vif_ref)s, network %(network_ref)s"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1577
+#: nova/virt/xenapi/vmops.py:1580
msgid "Injecting hostname to xenstore"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1675
+#: nova/virt/xenapi/vmops.py:1678
#, python-format
msgid ""
"Destination host:%(hostname)s must be in the same aggregate as the source"
" server"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1696
+#: nova/virt/xenapi/vmops.py:1699
msgid "No suitable network for migrate"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1708
+#: nova/virt/xenapi/vmops.py:1711
msgid "Migrate Receive failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1782
+#: nova/virt/xenapi/vmops.py:1785
msgid "XAPI supporting relax-xsm-sr-check=true requried"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1793
+#: nova/virt/xenapi/vmops.py:1796
msgid "VM.assert_can_migrate failed"
msgstr ""
-#: nova/virt/xenapi/vmops.py:1846
+#: nova/virt/xenapi/vmops.py:1849
msgid "Migrate Send failed"
msgstr ""
@@ -10930,7 +11259,7 @@ msgstr "å¸è¼‰_Volume: %(instance_name)s, %(mountpoint)s"
msgid "Skipping detach because VBD for %(instance_name)s was not found"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:64
+#: nova/virt/xenapi/imageupload/glance.py:69
#, python-format
msgid ""
"Asking xapi to upload to glance %(vdi_uuids)s as ID %(image_id)s glance "
@@ -10938,7 +11267,7 @@ msgid ""
"%(attempt_num)d/%(max_attempts)d"
msgstr ""
-#: nova/virt/xenapi/imageupload/glance.py:77
+#: nova/virt/xenapi/imageupload/glance.py:82
#, python-format
msgid "upload_vhd failed: %r"
msgstr ""
@@ -10991,67 +11320,8 @@ msgstr ""
msgid "status must be 'available'"
msgstr ""
-#~ msgid "EC2APIError raised: %s"
-#~ msgstr ""
-
-#~ msgid "Instance is in an invalid state for '%(action)s'"
-#~ msgstr ""
-
-#~ msgid "Failed to load extension %(ext_name)s: %(exc)s"
-#~ msgstr ""
-
-#~ msgid "Removing options '%(unk_opt_str)s' from query"
-#~ msgstr ""
-
-#~ msgid "Live migration of instance %(id)s to another host failed"
-#~ msgstr ""
-
-#~ msgid "Cannot show aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot update aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Cannot delete aggregate: %(id)s"
-#~ msgstr ""
-
-#~ msgid "Total %(type_)s: %(total)d %(unit)s, used: %(used)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit not specified, defaulting to unlimited"
-#~ msgstr ""
-
-#~ msgid "%(type_)s limit: %(limit)d %(unit)s, free: %(free)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid ""
-#~ "Unable to claim resources. Free "
-#~ "%(type_)s %(free)d %(unit)s < requested "
-#~ "%(requested)d %(unit)s"
-#~ msgstr ""
-
-#~ msgid "'%s' argument must be a positive integer"
-#~ msgstr ""
-
-#~ msgid "Attempting to build %(num_instances)d instance(s)"
-#~ msgstr ""
-
-#~ msgid "Choosing host %(chosen_host)s"
-#~ msgstr ""
-
-#~ msgid "Unable to load the virtualization driver: %s"
-#~ msgstr ""
-
#~ msgid ""
-#~ "Inject data image=%(image)s key=%(key)s "
-#~ "net=%(net)s metadata=%(metadata)s admin_password=ha-"
-#~ "ha-not-telling-you files=%(files)s "
-#~ "partition=%(partition)s use_cow=%(use_cow)s"
-#~ msgstr ""
-
-#~ msgid "Inject admin password fs=%(fs)s admin_passwd=ha-ha-not-telling-you"
-#~ msgstr ""
-
-#~ msgid "Resizing down VDI %(vdi_uuid)s from %(old_gb)dGB to %(new_gb)dGB"
+#~ "The service from servicegroup driver "
+#~ "%(driver) is temporarily unavailable."
#~ msgstr ""
diff --git a/nova/manager.py b/nova/manager.py
index 2a151827d..d1cd26a4d 100644
--- a/nova/manager.py
+++ b/nova/manager.py
@@ -57,6 +57,7 @@ from oslo.config import cfg
from nova import baserpc
from nova.db import base
+from nova.objects import base as objects_base
from nova.openstack.common import log as logging
from nova.openstack.common import periodic_task
from nova.openstack.common.plugin import pluginmanager
@@ -86,14 +87,19 @@ class Manager(base.Base, periodic_task.PeriodicTasks):
pluginmgr = pluginmanager.PluginManager('nova', self.__class__)
pluginmgr.load_plugins()
- def create_rpc_dispatcher(self, backdoor_port=None):
+ def create_rpc_dispatcher(self, backdoor_port=None, additional_apis=None):
'''Get the rpc dispatcher for this manager.
If a manager would like to set an rpc API version, or support more than
one class as the target of rpc messages, override this method.
'''
+ apis = []
+ if additional_apis:
+ apis.extend(additional_apis)
base_rpc = baserpc.BaseRPCAPI(self.service_name, backdoor_port)
- return rpc_dispatcher.RpcDispatcher([self, base_rpc])
+ apis.extend([self, base_rpc])
+ serializer = objects_base.NovaObjectSerializer()
+ return rpc_dispatcher.RpcDispatcher(apis, serializer)
def periodic_tasks(self, context, raise_on_error=False):
"""Tasks to be run at a periodic interval."""
diff --git a/nova/network/api.py b/nova/network/api.py
index 26bf03446..d482c51ab 100644
--- a/nova/network/api.py
+++ b/nova/network/api.py
@@ -21,6 +21,7 @@
import functools
import inspect
+from nova.cells import rpcapi as cells_rpcapi
from nova.compute import flavors
from nova.db import base
from nova import exception
@@ -64,7 +65,8 @@ def refresh_cache(f):
def update_instance_cache_with_nw_info(api, context, instance,
- nw_info=None, conductor_api=None):
+ nw_info=None, conductor_api=None,
+ update_cells=True):
try:
if not isinstance(nw_info, network_model.NetworkInfo):
nw_info = None
@@ -73,9 +75,20 @@ def update_instance_cache_with_nw_info(api, context, instance,
# update cache
cache = {'network_info': nw_info.json()}
if conductor_api:
- conductor_api.instance_info_cache_update(context, instance, cache)
+ rv = conductor_api.instance_info_cache_update(context,
+ instance,
+ cache)
else:
- api.db.instance_info_cache_update(context, instance['uuid'], cache)
+ rv = api.db.instance_info_cache_update(context,
+ instance['uuid'],
+ cache)
+ if update_cells:
+ cells_api = cells_rpcapi.CellsAPI()
+ try:
+ cells_api.instance_info_cache_update_at_top(context, rv)
+ except Exception:
+ LOG.exception(_("Failed to notify cells of instance info "
+ "cache update"))
except Exception:
LOG.exception(_('Failed storing info cache'), instance=instance)
@@ -266,7 +279,7 @@ class API(base.Base):
# this is called from compute.manager which shouldn't
# have db access so we do it on the other side of the
# rpc.
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
args = {}
args['vpn'] = vpn
args['requested_networks'] = requested_networks
@@ -316,7 +329,7 @@ class API(base.Base):
def add_fixed_ip_to_instance(self, context, instance, network_id,
conductor_api=None):
"""Adds a fixed ip to instance from specified network."""
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
args = {'instance_id': instance['uuid'],
'rxtx_factor': instance_type['rxtx_factor'],
'host': instance['host'],
@@ -329,7 +342,7 @@ class API(base.Base):
conductor_api=None):
"""Removes a fixed ip from instance from specified network."""
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
args = {'instance_id': instance['uuid'],
'rxtx_factor': instance_type['rxtx_factor'],
'host': instance['host'],
@@ -366,13 +379,18 @@ class API(base.Base):
def get_instance_nw_info(self, context, instance, conductor_api=None):
"""Returns all network info related to an instance."""
result = self._get_instance_nw_info(context, instance)
+ # NOTE(comstud): Don't update API cell with new info_cache every
+ # time we pull network info for an instance. The periodic healing
+ # of info_cache causes too many cells messages. Healing the API
+ # will happen separately.
update_instance_cache_with_nw_info(self, context, instance,
- result, conductor_api)
+ result, conductor_api,
+ update_cells=False)
return result
def _get_instance_nw_info(self, context, instance):
"""Returns all network info related to an instance."""
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
args = {'instance_id': instance['uuid'],
'rxtx_factor': instance_type['rxtx_factor'],
'host': instance['host'],
@@ -489,7 +507,7 @@ class API(base.Base):
@wrap_check_policy
def migrate_instance_start(self, context, instance, migration):
"""Start to migrate the network of an instance."""
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
args = dict(
instance_uuid=instance['uuid'],
rxtx_factor=instance_type['rxtx_factor'],
@@ -509,7 +527,7 @@ class API(base.Base):
@wrap_check_policy
def migrate_instance_finish(self, context, instance, migration):
"""Finish migrating the network of an instance."""
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
args = dict(
instance_uuid=instance['uuid'],
rxtx_factor=instance_type['rxtx_factor'],
diff --git a/nova/network/linux_net.py b/nova/network/linux_net.py
index c47b50060..dad496f23 100644
--- a/nova/network/linux_net.py
+++ b/nova/network/linux_net.py
@@ -896,6 +896,8 @@ def _remove_dnsmasq_accept_rules(dev):
iptables_manager.apply()
+# NOTE(russellb) Curious why this is needed? Check out this explanation from
+# markmc: https://bugzilla.redhat.com/show_bug.cgi?id=910619#c6
def _add_dhcp_mangle_rule(dev):
if not os.path.exists('/dev/vhost-net'):
return
diff --git a/nova/network/model.py b/nova/network/model.py
index cf01d98cf..240911ea9 100644
--- a/nova/network/model.py
+++ b/nova/network/model.py
@@ -15,6 +15,9 @@
# License for the specific language governing permissions and limitations
# under the License.
+import functools
+
+import eventlet
import netaddr
from nova import exception
@@ -434,3 +437,75 @@ class NetworkInfo(list):
network_info.append((network_dict, info_dict))
return network_info
+
+
+class NetworkInfoAsyncWrapper(NetworkInfo):
+ """Wrapper around NetworkInfo that allows retrieving NetworkInfo
+ in an async manner.
+
+ This allows one to start querying for network information before
+ you know you will need it. If you have a long-running
+ operation, this allows the network model retrieval to occur in the
+ background. When you need the data, it will ensure the async
+ operation has completed.
+
+ As an example:
+
+ def allocate_net_info(arg1, arg2)
+ return call_quantum_to_allocate(arg1, arg2)
+
+ network_info = NetworkInfoAsyncWrapper(allocate_net_info, arg1, arg2)
+ [do a long running operation -- real network_info will be retrieved
+ in the background]
+ [do something with network_info]
+ """
+
+ def __init__(self, async_method, *args, **kwargs):
+ self._gt = eventlet.spawn(async_method, *args, **kwargs)
+ methods = ['json', 'legacy', 'fixed_ips', 'floating_ips']
+ for method in methods:
+ fn = getattr(self, method)
+ wrapper = functools.partial(self._sync_wrapper, fn)
+ functools.update_wrapper(wrapper, fn)
+ setattr(self, method, wrapper)
+
+ def _sync_wrapper(self, wrapped, *args, **kwargs):
+ """Synchronize the model before running a method."""
+ self.wait()
+ return wrapped(*args, **kwargs)
+
+ def __getitem__(self, *args, **kwargs):
+ fn = super(NetworkInfoAsyncWrapper, self).__getitem__
+ return self._sync_wrapper(fn, *args, **kwargs)
+
+ def __iter__(self, *args, **kwargs):
+ fn = super(NetworkInfoAsyncWrapper, self).__iter__
+ return self._sync_wrapper(fn, *args, **kwargs)
+
+ def __len__(self, *args, **kwargs):
+ fn = super(NetworkInfoAsyncWrapper, self).__len__
+ return self._sync_wrapper(fn, *args, **kwargs)
+
+ def __str__(self, *args, **kwargs):
+ fn = super(NetworkInfoAsyncWrapper, self).__str__
+ return self._sync_wrapper(fn, *args, **kwargs)
+
+ def __repr__(self, *args, **kwargs):
+ fn = super(NetworkInfoAsyncWrapper, self).__repr__
+ return self._sync_wrapper(fn, *args, **kwargs)
+
+ def wait(self, do_raise=True):
+ """Wait for async call to finish."""
+ if self._gt is not None:
+ try:
+ # NOTE(comstud): This looks funky, but this object is
+ # subclassed from list. In other words, 'self' is really
+ # just a list with a bunch of extra methods. So this
+ # line just replaces the current list (which should be
+ # empty) with the result.
+ self[:] = self._gt.wait()
+ except Exception:
+ if do_raise:
+ raise
+ finally:
+ self._gt = None
diff --git a/nova/network/quantumv2/__init__.py b/nova/network/quantumv2/__init__.py
index 6d6e7c7bc..89c08311f 100644
--- a/nova/network/quantumv2/__init__.py
+++ b/nova/network/quantumv2/__init__.py
@@ -16,9 +16,7 @@
# under the License.
from oslo.config import cfg
-from quantumclient import client
-from quantumclient.common import exceptions
-from quantumclient.v2_0 import client as clientv20
+from quantumclient.v2_0 import client
from nova.openstack.common import excutils
from nova.openstack.common import log as logging
@@ -27,27 +25,24 @@ CONF = cfg.CONF
LOG = logging.getLogger(__name__)
-def _get_auth_token():
- try:
- httpclient = client.HTTPClient(
- username=CONF.quantum_admin_username,
- tenant_name=CONF.quantum_admin_tenant_name,
- region_name=CONF.quantum_region_name,
- password=CONF.quantum_admin_password,
- auth_url=CONF.quantum_admin_auth_url,
- timeout=CONF.quantum_url_timeout,
- auth_strategy=CONF.quantum_auth_strategy,
- insecure=CONF.quantum_api_insecure)
- httpclient.authenticate()
- return httpclient.auth_token
- except exceptions.QuantumClientException as e:
- with excutils.save_and_reraise_exception():
- LOG.error(_('Quantum client authentication failed: %s'), e)
+cached_admin_client = None
+
+
+def _fill_admin_details(params):
+ params['username'] = CONF.quantum_admin_username
+ params['tenant_name'] = CONF.quantum_admin_tenant_name
+ params['region_name'] = CONF.quantum_region_name
+ params['password'] = CONF.quantum_admin_password
+ params['auth_url'] = CONF.quantum_admin_auth_url
+ params['timeout'] = CONF.quantum_url_timeout
+ params['auth_strategy'] = CONF.quantum_auth_strategy
+ params['insecure'] = CONF.quantum_api_insecure
def _get_client(token=None):
- if not token and CONF.quantum_auth_strategy:
- token = _get_auth_token()
+ global cached_admin_client
+
+ should_cache = False
params = {
'endpoint_url': CONF.quantum_url,
'timeout': CONF.quantum_url_timeout,
@@ -56,12 +51,30 @@ def _get_client(token=None):
if token:
params['token'] = token
else:
- params['auth_strategy'] = None
- return clientv20.Client(**params)
+ if CONF.quantum_auth_strategy:
+ should_cache = True
+ _fill_admin_details(params)
+ else:
+ params['auth_strategy'] = None
+
+ new_client = client.Client(**params)
+ if should_cache:
+ # in this case, we don't have the token yet
+ try:
+ new_client.httpclient.authenticate()
+ except Exception:
+ with excutils.save_and_reraise_exception():
+ LOG.exception(_("quantum authentication failed"))
+
+ cached_admin_client = new_client
+ return new_client
def get_client(context, admin=False):
if admin:
+ if cached_admin_client is not None:
+ return cached_admin_client
+
token = None
else:
token = context.auth_token
diff --git a/nova/network/quantumv2/api.py b/nova/network/quantumv2/api.py
index 8da43a3d8..3721d53b1 100644
--- a/nova/network/quantumv2/api.py
+++ b/nova/network/quantumv2/api.py
@@ -33,6 +33,8 @@ from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.openstack.common import uuidutils
+import quantumclient.common.exceptions
+
quantum_opts = [
cfg.StrOpt('quantum_url',
default='http://127.0.0.1:9696',
@@ -309,7 +311,7 @@ class API(base.Base):
"""
self._refresh_quantum_extensions_cache()
if 'nvp-qos' in self.extensions:
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
rxtx_factor = instance_type.get('rxtx_factor')
port_req_body['port']['rxtx_factor'] = rxtx_factor
@@ -719,7 +721,7 @@ class API(base.Base):
port_id=port)
# If a quantum plugin does not implement the L3 API a 404 from
# list_floatingips will be raised.
- except quantumv2.exceptions.QuantumClientException as e:
+ except quantumclient.common.exceptions.QuantumClientException as e:
if e.status_code == 404:
return []
raise
diff --git a/nova/network/security_group/quantum_driver.py b/nova/network/security_group/quantum_driver.py
index ea7dac825..188b868af 100644
--- a/nova/network/security_group/quantum_driver.py
+++ b/nova/network/security_group/quantum_driver.py
@@ -60,6 +60,24 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
raise e
return self._convert_to_nova_security_group_format(security_group)
+ def update_security_group(self, context, security_group,
+ name, description):
+ quantum = quantumv2.get_client(context)
+ body = self._make_quantum_security_group_dict(name, description)
+ try:
+ security_group = quantum.update_security_group(
+ security_group['id'], body).get('security_group')
+ except q_exc.QuantumClientException as e:
+ LOG.exception(_("Quantum Error updating security group %s"),
+ name)
+ if e.status_code == 401:
+ # TODO(arosen) Cannot raise generic response from quantum here
+ # as this error code could be related to bad input or over
+ # quota
+ raise exc.HTTPBadRequest()
+ raise e
+ return self._convert_to_nova_security_group_format(security_group)
+
def _convert_to_nova_security_group_format(self, security_group):
nova_group = {}
nova_group['id'] = security_group['id']
@@ -275,17 +293,14 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
pass
return instances_security_group_bindings
- def get_instance_security_groups(self, context, instance_id,
- instance_uuid=None, detailed=False):
+ def get_instance_security_groups(self, context, instance_uuid,
+ detailed=False):
"""Returns the security groups that are associated with an instance.
If detailed is True then it also returns the full details of the
security groups associated with an instance.
"""
quantum = quantumv2.get_client(context)
- if instance_uuid:
- params = {'device_id': instance_uuid}
- else:
- params = {'device_id': instance_id}
+ params = {'device_id': instance_uuid}
ports = quantum.list_ports(**params)
security_groups = quantum.list_security_groups().get('security_groups')
@@ -306,7 +321,7 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
# Since the name is optional for
# quantum security groups
if not name:
- name = security_group['id']
+ name = security_group
ret.append({'name': name})
except KeyError:
# This should only happen due to a race condition
@@ -318,12 +333,11 @@ class SecurityGroupAPI(security_group_base.SecurityGroupBase):
return ret
def _has_security_group_requirements(self, port):
- port_security_enabled = port.get('port_security_enabled')
+ port_security_enabled = port.get('port_security_enabled', True)
has_ip = port.get('fixed_ips')
- if port_security_enabled and has_ip:
- return True
- else:
- return False
+ if has_ip:
+ return port_security_enabled
+ return False
@wrap_check_security_groups_policy
def add_to_instance(self, context, instance, security_group_name):
diff --git a/nova/network/security_group/security_group_base.py b/nova/network/security_group/security_group_base.py
index 3babf4b00..f802b955e 100644
--- a/nova/network/security_group/security_group_base.py
+++ b/nova/network/security_group/security_group_base.py
@@ -185,6 +185,10 @@ class SecurityGroupBase(object):
def create_security_group(self, context, name, description):
raise NotImplementedError()
+ def update_security_group(self, context, security_group,
+ name, description):
+ raise NotImplementedError()
+
def get(self, context, name=None, id=None, map_exception=False):
raise NotImplementedError()
@@ -204,8 +208,8 @@ class SecurityGroupBase(object):
def get_rule(self, context, id):
raise NotImplementedError()
- def get_instance_security_groups(self, context, instance_id,
- instance_uuid=None, detailed=False):
+ def get_instance_security_groups(self, context, instance_uuid,
+ detailed=False):
raise NotImplementedError()
def add_to_instance(self, context, instance, security_group_name):
diff --git a/nova/notifications.py b/nova/notifications.py
index 4442d9904..d000c4083 100644
--- a/nova/notifications.py
+++ b/nova/notifications.py
@@ -284,12 +284,11 @@ def info_from_instance(context, instance_ref, network_info,
image_ref_url = glance.generate_image_url(instance_ref['image_ref'])
- instance_type = flavors.extract_instance_type(instance_ref)
+ instance_type = flavors.extract_flavor(instance_ref)
instance_type_name = instance_type.get('name', '')
if system_metadata is None:
- system_metadata = utils.metadata_to_dict(
- instance_ref['system_metadata'])
+ system_metadata = utils.instance_sys_meta(instance_ref)
instance_info = dict(
# Owner properties
@@ -319,6 +318,7 @@ def info_from_instance(context, instance_ref, network_info,
# Location properties
host=instance_ref['host'],
+ node=instance_ref['node'],
availability_zone=instance_ref['availability_zone'],
# Date properties
diff --git a/nova/objects/__init__.py b/nova/objects/__init__.py
new file mode 100644
index 000000000..67f4db51a
--- /dev/null
+++ b/nova/objects/__init__.py
@@ -0,0 +1,13 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
diff --git a/nova/objects/base.py b/nova/objects/base.py
new file mode 100644
index 000000000..625dd48d1
--- /dev/null
+++ b/nova/objects/base.py
@@ -0,0 +1,430 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Nova common internal object model"""
+
+import collections
+
+from nova import context
+from nova import exception
+from nova.objects import utils as obj_utils
+from nova.openstack.common import log as logging
+from nova.openstack.common.rpc import common as rpc_common
+import nova.openstack.common.rpc.dispatcher
+import nova.openstack.common.rpc.proxy
+import nova.openstack.common.rpc.serializer
+
+
+LOG = logging.getLogger('object')
+
+
+def get_attrname(name):
+ """Return the mangled name of the attribute's underlying storage."""
+ return '_%s' % name
+
+
+def make_class_properties(cls):
+ # NOTE(danms): Inherit NovaObject's base fields only
+ cls.fields.update(NovaObject.fields)
+ for name, typefn in cls.fields.iteritems():
+
+ def getter(self, name=name, typefn=typefn):
+ attrname = get_attrname(name)
+ if not hasattr(self, attrname):
+ self.obj_load(name)
+ return getattr(self, attrname)
+
+ def setter(self, value, name=name, typefn=typefn):
+ self._changed_fields.add(name)
+ try:
+ return setattr(self, get_attrname(name), typefn(value))
+ except Exception:
+ attr = "%s.%s" % (self.obj_name(), name)
+ LOG.exception(_('Error setting %(attr)s') %
+ {'attr': attr})
+ raise
+
+ setattr(cls, name, property(getter, setter))
+
+
+class NovaObjectMetaclass(type):
+ """Metaclass that allows tracking of object classes."""
+
+ # NOTE(danms): This is what controls whether object operations are
+ # remoted. If this is not None, use it to remote things over RPC.
+ indirection_api = None
+
+ def __init__(cls, names, bases, dict_):
+ if not hasattr(cls, '_obj_classes'):
+ # This will be set in the 'NovaObject' class.
+ cls._obj_classes = collections.defaultdict(list)
+ else:
+ # Add the subclass to NovaObject._obj_classes
+ make_class_properties(cls)
+ cls._obj_classes[cls.obj_name()].append(cls)
+
+
+# These are decorators that mark an object's method as remotable.
+# If the metaclass is configured to forward object methods to an
+# indirection service, these will result in making an RPC call
+# instead of directly calling the implementation in the object. Instead,
+# the object implementation on the remote end will perform the
+# requested action and the result will be returned here.
+def remotable_classmethod(fn):
+ """Decorator for remotable classmethods."""
+ def wrapper(cls, context, *args, **kwargs):
+ if NovaObject.indirection_api:
+ result = NovaObject.indirection_api.object_class_action(
+ context, cls.obj_name(), fn.__name__, cls.version,
+ args, kwargs)
+ else:
+ result = fn(cls, context, *args, **kwargs)
+ if isinstance(result, NovaObject):
+ result._context = context
+ return result
+ return classmethod(wrapper)
+
+
+# See comment above for remotable_classmethod()
+#
+# Note that this will use either the provided context, or the one
+# stashed in the object. If neither are present, the object is
+# "orphaned" and remotable methods cannot be called.
+def remotable(fn):
+ """Decorator for remotable object methods."""
+ def wrapper(self, *args, **kwargs):
+ ctxt = self._context
+ try:
+ if isinstance(args[0], (context.RequestContext,
+ rpc_common.CommonRpcContext)):
+ ctxt = args[0]
+ args = args[1:]
+ except IndexError:
+ pass
+ if ctxt is None:
+ raise exception.OrphanedObjectError(method=fn.__name__,
+ objtype=self.obj_name())
+ if NovaObject.indirection_api:
+ updates, result = NovaObject.indirection_api.object_action(
+ ctxt, self, fn.__name__, args, kwargs)
+ for key, value in updates.iteritems():
+ if key in self.fields:
+ self[key] = self._attr_from_primitive(key, value)
+ self._changed_fields = set(updates.get('obj_what_changed', []))
+ return result
+ else:
+ return fn(self, ctxt, *args, **kwargs)
+ return wrapper
+
+
+# Object versioning rules
+#
+# Each service has its set of objects, each with a version attached. When
+# a client attempts to call an object method, the server checks to see if
+# the version of that object matches (in a compatible way) its object
+# implementation. If so, cool, and if not, fail.
+def check_object_version(server, client):
+ try:
+ client_major, _client_minor = client.split('.')
+ server_major, _server_minor = server.split('.')
+ client_minor = int(_client_minor)
+ server_minor = int(_server_minor)
+ except ValueError:
+ raise exception.IncompatibleObjectVersion(
+ _('Invalid version string'))
+
+ if client_major != server_major:
+ raise exception.IncompatibleObjectVersion(
+ dict(client=client_major, server=server_major))
+ if client_minor > server_minor:
+ raise exception.IncompatibleObjectVersion(
+ dict(client=client_minor, server=server_minor))
+
+
+class NovaObject(object):
+ """Base class and object factory.
+
+ This forms the base of all objects that can be remoted or instantiated
+ via RPC. Simply defining a class that inherits from this base class
+ will make it remotely instantiatable. Objects should implement the
+ necessary "get" classmethod routines as well as "save" object methods
+ as appropriate.
+ """
+ __metaclass__ = NovaObjectMetaclass
+
+ # Version of this object (see rules above check_object_version())
+ version = '1.0'
+
+ # The fields present in this object as key:typefn pairs. For example:
+ #
+ # fields = { 'foo': int,
+ # 'bar': str,
+ # 'baz': lambda x: str(x).ljust(8),
+ # }
+ #
+ # NOTE(danms): The base NovaObject class' fields will be inherited
+ # by subclasses, but that is a special case. Objects inheriting from
+ # other objects will not receive this merging of fields contents.
+ fields = {
+ 'created_at': obj_utils.datetime_or_str_or_none,
+ 'updated_at': obj_utils.datetime_or_str_or_none,
+ 'deleted_at': obj_utils.datetime_or_str_or_none,
+ 'deleted': bool,
+ }
+
+ def __init__(self):
+ self._changed_fields = set()
+ self._context = None
+
+ @classmethod
+ def obj_name(cls):
+ """Return a canonical name for this object which will be used over
+ the wire for remote hydration."""
+ return cls.__name__
+
+ @classmethod
+ def obj_class_from_name(cls, objname, objver):
+ """Returns a class from the registry based on a name and version."""
+ if objname not in cls._obj_classes:
+ LOG.error(_('Unable to instantiate unregistered object type '
+ '%(objtype)s') % dict(objtype=objname))
+ raise exception.UnsupportedObjectError(objtype=objname)
+
+ compatible_match = None
+ for objclass in cls._obj_classes[objname]:
+ if objclass.version == objver:
+ return objclass
+ try:
+ check_object_version(objclass.version, objver)
+ compatible_match = objclass
+ except exception.IncompatibleObjectVersion:
+ pass
+
+ if compatible_match:
+ return compatible_match
+
+ raise exception.IncompatibleObjectVersion(objname=objname,
+ objver=objver)
+
+ _attr_created_at_from_primitive = obj_utils.dt_deserializer
+ _attr_updated_at_from_primitive = obj_utils.dt_deserializer
+ _attr_deleted_at_from_primitive = obj_utils.dt_deserializer
+
+ def _attr_from_primitive(self, attribute, value):
+ """Attribute deserialization dispatcher.
+
+ This calls self._attr_foo_from_primitive(value) for an attribute
+ foo with value, if it exists, otherwise it assumes the value
+ is suitable for the attribute's setter method.
+ """
+ handler = '_attr_%s_from_primitive' % attribute
+ if hasattr(self, handler):
+ return getattr(self, handler)(value)
+ return value
+
+ @classmethod
+ def obj_from_primitive(cls, primitive):
+ """Simple base-case hydration.
+
+ This calls self._attr_from_primitive() for each item in fields.
+ """
+ if primitive['nova_object.namespace'] != 'nova':
+ # NOTE(danms): We don't do anything with this now, but it's
+ # there for "the future"
+ raise exception.UnsupportedObjectError(
+ objtype='%s.%s' % (primitive['nova_object.namespace'],
+ primitive['nova_object.name']))
+ objname = primitive['nova_object.name']
+ objver = primitive['nova_object.version']
+ objdata = primitive['nova_object.data']
+ objclass = cls.obj_class_from_name(objname, objver)
+ self = objclass()
+ for name in self.fields:
+ if name in objdata:
+ setattr(self, name,
+ self._attr_from_primitive(name, objdata[name]))
+ changes = primitive.get('nova_object.changes', [])
+ self._changed_fields = set([x for x in changes if x in self.fields])
+ return self
+
+ _attr_created_at_to_primitive = obj_utils.dt_serializer('created_at')
+ _attr_updated_at_to_primitive = obj_utils.dt_serializer('updated_at')
+ _attr_deleted_at_to_primitive = obj_utils.dt_serializer('deleted_at')
+
+ def _attr_to_primitive(self, attribute):
+ """Attribute serialization dispatcher.
+
+ This calls self._attr_foo_to_primitive() for an attribute foo,
+ if it exists, otherwise it assumes the attribute itself is
+ primitive-enough to be sent over the RPC wire.
+ """
+ handler = '_attr_%s_to_primitive' % attribute
+ if hasattr(self, handler):
+ return getattr(self, handler)()
+ else:
+ return getattr(self, attribute)
+
+ def obj_to_primitive(self):
+ """Simple base-case dehydration.
+
+ This calls self._attr_to_primitive() for each item in fields.
+ """
+ primitive = dict()
+ for name in self.fields:
+ if hasattr(self, get_attrname(name)):
+ primitive[name] = self._attr_to_primitive(name)
+ obj = {'nova_object.name': self.obj_name(),
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': self.version,
+ 'nova_object.data': primitive}
+ if self.obj_what_changed():
+ obj['nova_object.changes'] = list(self.obj_what_changed())
+ return obj
+
+ def obj_load_attr(self, attrname):
+ """Load an additional attribute from the real object.
+
+ This should use self._conductor, and cache any data that might
+ be useful for future load operations.
+ """
+ raise NotImplementedError(
+ _("Cannot load '%(attrname)s' in the base class") % locals())
+
+ def save(self, context):
+ """Save the changed fields back to the store.
+
+ This is optional for subclasses, but is presented here in the base
+ class for consistency among those that do.
+ """
+ raise NotImplementedError('Cannot save anything in the base class')
+
+ def obj_what_changed(self):
+ """Returns a list of fields that have been modified."""
+ return self._changed_fields
+
+ def obj_reset_changes(self, fields=None):
+ """Reset the list of fields that have been changed.
+
+ Note that this is NOT "revert to previous values"
+ """
+ if fields:
+ self._changed_fields -= set(fields)
+ else:
+ self._changed_fields.clear()
+
+ # dictish syntactic sugar
+ def iteritems(self):
+ """For backwards-compatibility with dict-based objects.
+
+ NOTE(danms): May be removed in the future.
+ """
+ for name in self.fields:
+ if hasattr(self, get_attrname(name)):
+ yield name, getattr(self, name)
+
+ items = lambda self: list(self.iteritems())
+
+ def __getitem__(self, name):
+ """For backwards-compatibility with dict-based objects.
+
+ NOTE(danms): May be removed in the future.
+ """
+ return getattr(self, name)
+
+ def __setitem__(self, name, value):
+ """For backwards-compatibility with dict-based objects.
+
+ NOTE(danms): May be removed in the future.
+ """
+ setattr(self, name, value)
+
+ def get(self, key, value=None):
+ """For backwards-compatibility with dict-based objects.
+
+ NOTE(danms): May be removed in the future.
+ """
+ return self[key]
+
+
+class ObjectListBase(object):
+ """Mixin class for lists of objects.
+
+ This mixin class can be added as a base class for an object that
+ is implementing a list of objects. It adds a single field of 'objects',
+ which is the list store, and behaves like a list itself. It supports
+ serialization of the list of objects automatically.
+ """
+ fields = {
+ 'objects': list,
+ }
+
+ def __iter__(self):
+ """List iterator interface."""
+ return iter(self.objects)
+
+ def __len__(self):
+ """List length."""
+ return len(self.objects)
+
+ def __getitem__(self, index):
+ """List index access."""
+ if isinstance(index, slice):
+ new_obj = self.__class__()
+ new_obj.objects = self.objects[index]
+ # NOTE(danms): We must be mixed in with a NovaObject!
+ new_obj.obj_reset_changes()
+ new_obj._context = self._context
+ return new_obj
+ return self.objects[index]
+
+ def __contains__(self, value):
+ """List membership test."""
+ return value in self.objects
+
+ def count(self, value):
+ """List count of value occurrences."""
+ return self.objects.count(value)
+
+ def index(self, value):
+ """List index of value."""
+ return self.objects.index(value)
+
+ def _attr_objects_to_primitive(self):
+ """Serialization of object list."""
+ return [x.obj_to_primitive() for x in self.objects]
+
+ def _attr_objects_from_primitive(self, value):
+ """Deserialization of object list."""
+ return [NovaObject.obj_from_primitive(x) for x in value]
+
+
+class NovaObjectSerializer(nova.openstack.common.rpc.serializer.Serializer):
+ """A NovaObject-aware Serializer.
+
+ This implements the Oslo Serializer interface and provides the
+ ability to serialize and deserialize NovaObject entities. Any service
+ that needs to accept or return NovaObjects as arguments or result values
+ should pass this to its RpcProxy and RpcDispatcher objects.
+ """
+ def serialize_entity(self, context, entity):
+ if (hasattr(entity, 'obj_to_primitive') and
+ callable(entity.obj_to_primitive)):
+ entity = entity.obj_to_primitive()
+ return entity
+
+ def deserialize_entity(self, context, entity):
+ if isinstance(entity, dict) and 'nova_object.name' in entity:
+ entity = NovaObject.obj_from_primitive(entity)
+ entity._context = context
+ return entity
diff --git a/nova/objects/instance.py b/nova/objects/instance.py
new file mode 100644
index 000000000..58c581542
--- /dev/null
+++ b/nova/objects/instance.py
@@ -0,0 +1,295 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from nova import db
+from nova import notifications
+from nova.objects import base
+from nova.objects import utils as obj_utils
+from nova import utils
+
+from oslo.config import cfg
+
+
+CONF = cfg.CONF
+
+
+class Instance(base.NovaObject):
+ fields = {
+ 'id': int,
+
+ 'user_id': obj_utils.str_or_none,
+ 'project_id': obj_utils.str_or_none,
+
+ 'image_ref': obj_utils.str_or_none,
+ 'kernel_id': obj_utils.str_or_none,
+ 'ramdisk_id': obj_utils.str_or_none,
+ 'hostname': obj_utils.str_or_none,
+
+ 'launch_index': obj_utils.int_or_none,
+ 'key_name': obj_utils.str_or_none,
+ 'key_data': obj_utils.str_or_none,
+
+ 'power_state': obj_utils.int_or_none,
+ 'vm_state': obj_utils.str_or_none,
+ 'task_state': obj_utils.str_or_none,
+
+ 'memory_mb': obj_utils.int_or_none,
+ 'vcpus': obj_utils.int_or_none,
+ 'root_gb': obj_utils.int_or_none,
+ 'ephemeral_gb': obj_utils.int_or_none,
+
+ 'host': obj_utils.str_or_none,
+ 'node': obj_utils.str_or_none,
+
+ 'instance_type_id': obj_utils.int_or_none,
+
+ 'user_data': obj_utils.str_or_none,
+
+ 'reservation_id': obj_utils.str_or_none,
+
+ 'scheduled_at': obj_utils.datetime_or_str_or_none,
+ 'launched_at': obj_utils.datetime_or_str_or_none,
+ 'terminated_at': obj_utils.datetime_or_str_or_none,
+
+ 'availability_zone': obj_utils.str_or_none,
+
+ 'display_name': obj_utils.str_or_none,
+ 'display_description': obj_utils.str_or_none,
+
+ 'launched_on': obj_utils.str_or_none,
+ 'locked': bool,
+
+ 'os_type': obj_utils.str_or_none,
+ 'architecture': obj_utils.str_or_none,
+ 'vm_mode': obj_utils.str_or_none,
+ 'uuid': obj_utils.str_or_none,
+
+ 'root_device_name': obj_utils.str_or_none,
+ 'default_ephemeral_device': obj_utils.str_or_none,
+ 'default_swap_device': obj_utils.str_or_none,
+ 'config_drive': obj_utils.str_or_none,
+
+ 'access_ip_v4': obj_utils.ip_or_none(4),
+ 'access_ip_v6': obj_utils.ip_or_none(6),
+
+ 'auto_disk_config': bool,
+ 'progress': obj_utils.int_or_none,
+
+ 'shutdown_terminate': bool,
+ 'disable_terminate': bool,
+
+ 'cell_name': obj_utils.str_or_none,
+
+ 'metadata': dict,
+ 'system_metadata': dict,
+
+ }
+
+ @property
+ def name(self):
+ try:
+ base_name = CONF.instance_name_template % self.id
+ except TypeError:
+ # Support templates like "uuid-%(uuid)s", etc.
+ info = {}
+ # NOTE(russellb): Don't use self.iteritems() here, as it will
+ # result in infinite recursion on the name property.
+ for key in self.fields:
+ # prevent recursion if someone specifies %(name)s
+ # %(name)s will not be valid.
+ if key == 'name':
+ continue
+ info[key] = self[key]
+ try:
+ base_name = CONF.instance_name_template % info
+ except KeyError:
+ base_name = self.uuid
+ return base_name
+
+ def _attr_access_ip_v4_to_primitive(self):
+ if self.access_ip_v4 is not None:
+ return str(self.access_ip_v4)
+ else:
+ return None
+
+ def _attr_access_ip_v6_to_primitive(self):
+ if self.access_ip_v6 is not None:
+ return str(self.access_ip_v6)
+ else:
+ return None
+
+ _attr_scheduled_at_to_primitive = obj_utils.dt_serializer('scheduled_at')
+ _attr_launched_at_to_primitive = obj_utils.dt_serializer('launched_at')
+ _attr_terminated_at_to_primitive = obj_utils.dt_serializer('terminated_at')
+
+ _attr_scheduled_at_from_primitive = obj_utils.dt_deserializer
+ _attr_launched_at_from_primitive = obj_utils.dt_deserializer
+ _attr_terminated_at_from_primitive = obj_utils.dt_deserializer
+
+ @staticmethod
+ def _from_db_object(instance, db_inst, expected_attrs=None):
+ """Method to help with migration to objects.
+
+ Converts a database entity to a formal object.
+ """
+ if expected_attrs is None:
+ expected_attrs = []
+ # Most of the field names match right now, so be quick
+ for field in instance.fields:
+ if field in ['metadata', 'system_metadata']:
+ continue
+ elif field == 'deleted':
+ instance.deleted = db_inst['deleted'] == db_inst['id']
+ else:
+ instance[field] = db_inst[field]
+
+ if 'metadata' in expected_attrs:
+ instance['metadata'] = utils.metadata_to_dict(db_inst['metadata'])
+ if 'system_metadata' in expected_attrs:
+ instance['system_metadata'] = utils.metadata_to_dict(
+ db_inst['system_metadata'])
+
+ instance.obj_reset_changes()
+ return instance
+
+ @base.remotable_classmethod
+ def get_by_uuid(cls, context, uuid=None, expected_attrs=None):
+ if expected_attrs is None:
+ expected_attrs = []
+
+ # Construct DB-specific columns from generic expected_attrs
+ columns_to_join = []
+ if 'metadata' in expected_attrs:
+ columns_to_join.append('metadata')
+ if 'system_metadata' in expected_attrs:
+ columns_to_join.append('system_metadata')
+
+ db_inst = db.instance_get_by_uuid(context, uuid,
+ columns_to_join)
+ return Instance._from_db_object(cls(), db_inst, expected_attrs)
+
+ @base.remotable
+ def save(self, context, expected_task_state=None):
+ """Save updates to this instance
+
+ Column-wise updates will be made based on the result of
+ self.what_changed(). If expected_task_state is provided,
+ it will be checked against the in-database copy of the
+ instance before updates are made.
+ :param context: Security context
+ :param expected_task_state: Optional tuple of valid task states
+ for the instance to be in.
+ """
+ updates = {}
+ changes = self.obj_what_changed()
+ for field in changes:
+ updates[field] = self[field]
+ if expected_task_state is not None:
+ updates['expected_task_state'] = expected_task_state
+ old_ref, inst_ref = db.instance_update_and_get_original(context,
+ self.uuid,
+ updates)
+
+ expected_attrs = []
+ for attr in ('metadata', 'system_metadata'):
+ if hasattr(self, base.get_attrname(attr)):
+ expected_attrs.append(attr)
+ Instance._from_db_object(self, inst_ref, expected_attrs)
+ if 'vm_state' in changes or 'task_state' in changes:
+ notifications.send_update(context, old_ref, inst_ref)
+
+ self.obj_reset_changes()
+
+ @base.remotable
+ def refresh(self, context):
+ extra = []
+ for field in ['system_metadata', 'metadata']:
+ if hasattr(self, base.get_attrname(field)):
+ extra.append(field)
+ current = self.__class__.get_by_uuid(context, uuid=self.uuid,
+ expected_attrs=extra)
+ for field in self.fields:
+ if (hasattr(self, base.get_attrname(field)) and
+ self[field] != current[field]):
+ self[field] = current[field]
+
+ def obj_load(self, attrname):
+ extra = []
+ if attrname == 'system_metadata':
+ extra.append('system_metadata')
+ elif attrname == 'metadata':
+ extra.append('metadata')
+
+ if not extra:
+ raise Exception('Cannot load "%s" from instance' % attrname)
+
+ # NOTE(danms): This could be optimized to just load the bits we need
+ instance = self.__class__.get_by_uuid(self._context,
+ uuid=self.uuid,
+ expected_attrs=extra)
+ self[attrname] = instance[attrname]
+
+
+def _make_instance_list(context, inst_list, db_inst_list, expected_attrs):
+ inst_list.objects = []
+ for db_inst in db_inst_list:
+ inst_obj = Instance._from_db_object(Instance(), db_inst,
+ expected_attrs=expected_attrs)
+ inst_obj._context = context
+ inst_list.objects.append(inst_obj)
+ inst_list.obj_reset_changes()
+ return inst_list
+
+
+class InstanceList(base.ObjectListBase, base.NovaObject):
+ @base.remotable_classmethod
+ def get_by_filters(cls, context, filters,
+ sort_key=None, sort_dir=None, limit=None, marker=None,
+ expected_attrs=None):
+ db_inst_list = db.instance_get_all_by_filters(
+ context, filters, sort_key, sort_dir, limit, marker,
+ columns_to_join=expected_attrs)
+
+ return _make_instance_list(context, cls(), db_inst_list,
+ expected_attrs)
+
+ @base.remotable_classmethod
+ def get_by_host(cls, context, host, expected_attrs=None):
+ db_inst_list = db.instance_get_all_by_host(
+ context, host, columns_to_join=expected_attrs)
+ return _make_instance_list(context, cls(), db_inst_list,
+ expected_attrs)
+
+ @base.remotable_classmethod
+ def get_by_host_and_node(cls, context, host, node, expected_attrs=None):
+ db_inst_list = db.instance_get_all_by_host_and_node(
+ context, host, node)
+ return _make_instance_list(context, cls(), db_inst_list,
+ expected_attrs)
+
+ @base.remotable_classmethod
+ def get_by_host_and_not_type(cls, context, host, type_id=None,
+ expected_attrs=None):
+ db_inst_list = db.instance_get_all_by_host_and_not_type(
+ context, host, type_id=type_id)
+ return _make_instance_list(context, cls(), db_inst_list,
+ expected_attrs)
+
+ @base.remotable_classmethod
+ def get_hung_in_rebooting(cls, context, reboot_window,
+ expected_attrs=None):
+ db_inst_list = db.instance_get_all_hung_in_rebooting(context,
+ reboot_window)
+ return _make_instance_list(context, cls(), db_inst_list,
+ expected_attrs)
diff --git a/nova/objects/utils.py b/nova/objects/utils.py
new file mode 100644
index 000000000..21ef6faeb
--- /dev/null
+++ b/nova/objects/utils.py
@@ -0,0 +1,88 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Utility methods for objects"""
+
+import datetime
+import iso8601
+import netaddr
+
+from nova.openstack.common import timeutils
+
+
+def datetime_or_none(dt):
+ """Validate a datetime or None value."""
+ if dt is None:
+ return None
+ elif isinstance(dt, datetime.datetime):
+ if dt.utcoffset() is None:
+ # NOTE(danms): Legacy objects from sqlalchemy are stored in UTC,
+ # but are returned without a timezone attached.
+ # As a transitional aid, assume a tz-naive object is in UTC.
+ return dt.replace(tzinfo=iso8601.iso8601.Utc())
+ else:
+ return dt
+ raise ValueError('A datetime.datetime is required here')
+
+
+# NOTE(danms): Being tolerant of isotime strings here will help us
+# during our objects transition
+def datetime_or_str_or_none(val):
+ if isinstance(val, basestring):
+ return timeutils.parse_isotime(val)
+ return datetime_or_none(val)
+
+
+def int_or_none(val):
+ """Attempt to parse an integer value, or None."""
+ if val is None:
+ return val
+ else:
+ return int(val)
+
+
+def str_or_none(val):
+ """Attempt to stringify a value, or None."""
+ if val is None:
+ return val
+ else:
+ return str(val)
+
+
+def ip_or_none(version):
+ """Return a version-specific IP address validator."""
+ def validator(val, version=version):
+ if val is None:
+ return val
+ else:
+ return netaddr.IPAddress(val, version=version)
+ return validator
+
+
+def dt_serializer(name):
+ """Return a datetime serializer for a named attribute."""
+ def serializer(self, name=name):
+ if getattr(self, name) is not None:
+ return timeutils.isotime(getattr(self, name))
+ else:
+ return None
+ return serializer
+
+
+def dt_deserializer(instance, val):
+ """A deserializer method for datetime attributes."""
+ if val is None:
+ return None
+ else:
+ return timeutils.parse_isotime(val)
diff --git a/nova/openstack/common/config/__init__.py b/nova/openstack/common/config/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/nova/openstack/common/config/__init__.py
diff --git a/tools/conf/extract_opts.py b/nova/openstack/common/config/generator.py
index 89f335d9b..7ab3abc70 100644..100755
--- a/tools/conf/extract_opts.py
+++ b/nova/openstack/common/config/generator.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2012 SINA Corporation
@@ -17,7 +18,6 @@
#
# @author: Zhongyue Luo, SINA Corporation.
#
-
"""Extracts OpenStack config option info from module(s)."""
import imp
@@ -29,8 +29,10 @@ import textwrap
from oslo.config import cfg
+from nova.openstack.common import gettextutils
from nova.openstack.common import importutils
+gettextutils.install('nova')
STROPT = "StrOpt"
BOOLOPT = "BoolOpt"
@@ -58,7 +60,7 @@ BASEDIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../"))
WORDWRAP_WIDTH = 60
-def main(srcfiles):
+def generate(srcfiles):
mods_by_pkg = dict()
for filepath in srcfiles:
pkg_name = filepath.split(os.sep)[1]
@@ -104,58 +106,37 @@ def _import_module(mod_str):
return sys.modules[mod_str[4:]]
else:
return importutils.import_module(mod_str)
- except (ValueError, AttributeError), err:
- return None
- except ImportError, ie:
+ except ImportError as ie:
sys.stderr.write("%s\n" % str(ie))
return None
- except Exception, e:
+ except Exception:
return None
-def _guess_groups(opt, mod_obj):
- groups = []
+def _is_in_group(opt, group):
+ "Check if opt is in group."
+ for key, value in group._opts.items():
+ if value['opt'] == opt:
+ return True
+ return False
+
+def _guess_groups(opt, mod_obj):
# is it in the DEFAULT group?
- if (opt.dest in cfg.CONF and
- not isinstance(cfg.CONF[opt.dest], cfg.CONF.GroupAttr)):
- groups.append('DEFAULT')
+ if _is_in_group(opt, cfg.CONF):
+ return 'DEFAULT'
# what other groups is it in?
for key, value in cfg.CONF.items():
- if not isinstance(value, cfg.CONF.GroupAttr):
- continue
- if opt.dest not in value:
- continue
- groups.append(key)
-
- if len(groups) == 1:
- return groups[0]
-
- group = None
- for g in groups:
- if g in mod_obj.__name__:
- group = g
- break
-
- if group is None and 'DEFAULT' in groups:
- sys.stderr.write("Guessing that " + opt.dest +
- " in " + mod_obj.__name__ +
- " is in DEFAULT group out of " +
- ','.join(groups) + "\n")
- return 'DEFAULT'
-
- if group is None:
- sys.stderr.write("Unable to guess what group " + opt.dest +
- " in " + mod_obj.__name__ +
- " is in out of " + ','.join(groups) + "\n")
- sys.exit(1)
+ if isinstance(value, cfg.CONF.GroupAttr):
+ if _is_in_group(opt, value._group):
+ return value._group.name
- sys.stderr.write("Guessing that " + opt.dest +
- " in " + mod_obj.__name__ +
- " is in the " + group +
- " group out of " + ','.join(groups) + "\n")
- return group
+ raise RuntimeError(
+ "Unable to find group for option %s, "
+ "maybe it's defined twice in the same group?"
+ % opt.name
+ )
def _list_opts(obj):
@@ -262,8 +243,11 @@ def _print_opt(opt):
sys.exit(1)
-if __name__ == '__main__':
+def main():
if len(sys.argv) < 2:
- print "usage: python %s [srcfile]...\n" % sys.argv[0]
+ print "usage: %s [srcfile]...\n" % sys.argv[0]
sys.exit(0)
- main(sys.argv[1:])
+ generate(sys.argv[1:])
+
+if __name__ == '__main__':
+ main()
diff --git a/nova/openstack/common/db/sqlalchemy/session.py b/nova/openstack/common/db/sqlalchemy/session.py
index a3f4283d0..093d8b082 100644
--- a/nova/openstack/common/db/sqlalchemy/session.py
+++ b/nova/openstack/common/db/sqlalchemy/session.py
@@ -386,14 +386,15 @@ def _raise_if_duplicate_entry_error(integrity_error, engine_name):
"""
def get_columns_from_uniq_cons_or_name(columns):
- # note(boris-42): UniqueConstraint name convention: "uniq_c1_x_c2_x_c3"
- # means that columns c1, c2, c3 are in UniqueConstraint.
+ # note(vsergeyev): UniqueConstraint name convention: "uniq_t0c10c2"
+ # where `t` it is table name, `0` it is delimiter and
+ # columns `c1`, `c2` are in UniqueConstraint.
uniqbase = "uniq_"
if not columns.startswith(uniqbase):
if engine_name == "postgresql":
return [columns[columns.index("_") + 1:columns.rindex("_")]]
return [columns]
- return columns[len(uniqbase):].split("_x_")
+ return columns[len(uniqbase):].split("0")[1:]
if engine_name not in ["mysql", "sqlite", "postgresql"]:
return
diff --git a/nova/openstack/common/middleware/__init__.py b/nova/openstack/common/middleware/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/nova/openstack/common/middleware/__init__.py
diff --git a/nova/openstack/common/middleware/correlation_id.py b/nova/openstack/common/middleware/correlation_id.py
new file mode 100644
index 000000000..b04f81922
--- /dev/null
+++ b/nova/openstack/common/middleware/correlation_id.py
@@ -0,0 +1,29 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright (c) 2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Middleware that attaches a correlation id to WSGI request"""
+
+from nova.openstack.common import uuidutils
+from nova import wsgi
+
+
+class CorrelationIdMiddleware(wsgi.Middleware):
+
+ def process_request(self, req):
+ correlation_id = (req.headers.get("X_CORRELATION_ID") or
+ uuidutils.generate_uuid())
+ req.headers['X_CORRELATION_ID'] = correlation_id
diff --git a/nova/openstack/common/processutils.py b/nova/openstack/common/processutils.py
index de6179602..87d89b490 100644
--- a/nova/openstack/common/processutils.py
+++ b/nova/openstack/common/processutils.py
@@ -203,7 +203,7 @@ def trycmd(*args, **kwargs):
try:
out, err = execute(*args, **kwargs)
failed = False
- except ProcessExecutionError, exn:
+ except ProcessExecutionError as exn:
out, err = '', str(exn)
failed = True
diff --git a/nova/openstack/common/rpc/impl_qpid.py b/nova/openstack/common/rpc/impl_qpid.py
index 2863f23a5..ae4ee81f7 100644
--- a/nova/openstack/common/rpc/impl_qpid.py
+++ b/nova/openstack/common/rpc/impl_qpid.py
@@ -31,6 +31,7 @@ from nova.openstack.common import log as logging
from nova.openstack.common.rpc import amqp as rpc_amqp
from nova.openstack.common.rpc import common as rpc_common
+qpid_codec = importutils.try_import("qpid.codec010")
qpid_messaging = importutils.try_import("qpid.messaging")
qpid_exceptions = importutils.try_import("qpid.messaging.exceptions")
@@ -69,6 +70,8 @@ qpid_opts = [
cfg.CONF.register_opts(qpid_opts)
+JSON_CONTENT_TYPE = 'application/json; charset=utf8'
+
class ConsumerBase(object):
"""Consumer base class."""
@@ -118,15 +121,32 @@ class ConsumerBase(object):
self.reconnect(session)
def reconnect(self, session):
- """Re-declare the receiver after a qpid reconnect"""
+ """Re-declare the receiver after a qpid reconnect."""
self.session = session
self.receiver = session.receiver(self.address)
self.receiver.capacity = 1
+ def _unpack_json_msg(self, msg):
+ """Load the JSON data in msg if msg.content_type indicates that it
+ is necessary. Put the loaded data back into msg.content and
+ update msg.content_type appropriately.
+
+ A Qpid Message containing a dict will have a content_type of
+ 'amqp/map', whereas one containing a string that needs to be converted
+ back from JSON will have a content_type of JSON_CONTENT_TYPE.
+
+ :param msg: a Qpid Message object
+ :returns: None
+ """
+ if msg.content_type == JSON_CONTENT_TYPE:
+ msg.content = jsonutils.loads(msg.content)
+ msg.content_type = 'amqp/map'
+
def consume(self):
- """Fetch the message and pass it to the callback object"""
+ """Fetch the message and pass it to the callback object."""
message = self.receiver.fetch()
try:
+ self._unpack_json_msg(message)
msg = rpc_common.deserialize_msg(message.content)
self.callback(msg)
except Exception:
@@ -139,7 +159,7 @@ class ConsumerBase(object):
class DirectConsumer(ConsumerBase):
- """Queue/consumer class for 'direct'"""
+ """Queue/consumer class for 'direct'."""
def __init__(self, conf, session, msg_id, callback):
"""Init a 'direct' queue.
@@ -157,7 +177,7 @@ class DirectConsumer(ConsumerBase):
class TopicConsumer(ConsumerBase):
- """Consumer class for 'topic'"""
+ """Consumer class for 'topic'."""
def __init__(self, conf, session, topic, callback, name=None,
exchange_name=None):
@@ -177,7 +197,7 @@ class TopicConsumer(ConsumerBase):
class FanoutConsumer(ConsumerBase):
- """Consumer class for 'fanout'"""
+ """Consumer class for 'fanout'."""
def __init__(self, conf, session, topic, callback):
"""Init a 'fanout' queue.
@@ -196,7 +216,7 @@ class FanoutConsumer(ConsumerBase):
class Publisher(object):
- """Base Publisher class"""
+ """Base Publisher class."""
def __init__(self, session, node_name, node_opts=None):
"""Init the Publisher class with the exchange_name, routing_key,
@@ -225,16 +245,43 @@ class Publisher(object):
self.reconnect(session)
def reconnect(self, session):
- """Re-establish the Sender after a reconnection"""
+ """Re-establish the Sender after a reconnection."""
self.sender = session.sender(self.address)
+ def _pack_json_msg(self, msg):
+ """Qpid cannot serialize dicts containing strings longer than 65535
+ characters. This function dumps the message content to a JSON
+ string, which Qpid is able to handle.
+
+ :param msg: May be either a Qpid Message object or a bare dict.
+ :returns: A Qpid Message with its content field JSON encoded.
+ """
+ try:
+ msg.content = jsonutils.dumps(msg.content)
+ except AttributeError:
+ # Need to have a Qpid message so we can set the content_type.
+ msg = qpid_messaging.Message(jsonutils.dumps(msg))
+ msg.content_type = JSON_CONTENT_TYPE
+ return msg
+
def send(self, msg):
- """Send a message"""
+ """Send a message."""
+ try:
+ # Check if Qpid can encode the message
+ check_msg = msg
+ if not hasattr(check_msg, 'content_type'):
+ check_msg = qpid_messaging.Message(msg)
+ content_type = check_msg.content_type
+ enc, dec = qpid_messaging.message.get_codec(content_type)
+ enc(check_msg.content)
+ except qpid_codec.CodecException:
+ # This means the message couldn't be serialized as a dict.
+ msg = self._pack_json_msg(msg)
self.sender.send(msg)
class DirectPublisher(Publisher):
- """Publisher class for 'direct'"""
+ """Publisher class for 'direct'."""
def __init__(self, conf, session, msg_id):
"""Init a 'direct' publisher."""
super(DirectPublisher, self).__init__(session, msg_id,
@@ -242,7 +289,7 @@ class DirectPublisher(Publisher):
class TopicPublisher(Publisher):
- """Publisher class for 'topic'"""
+ """Publisher class for 'topic'."""
def __init__(self, conf, session, topic):
"""init a 'topic' publisher.
"""
@@ -252,7 +299,7 @@ class TopicPublisher(Publisher):
class FanoutPublisher(Publisher):
- """Publisher class for 'fanout'"""
+ """Publisher class for 'fanout'."""
def __init__(self, conf, session, topic):
"""init a 'fanout' publisher.
"""
@@ -262,7 +309,7 @@ class FanoutPublisher(Publisher):
class NotifyPublisher(Publisher):
- """Publisher class for notifications"""
+ """Publisher class for notifications."""
def __init__(self, conf, session, topic):
"""init a 'topic' publisher.
"""
@@ -330,7 +377,7 @@ class Connection(object):
return self.consumers[str(receiver)]
def reconnect(self):
- """Handles reconnecting and re-establishing sessions and queues"""
+ """Handles reconnecting and re-establishing sessions and queues."""
attempt = 0
delay = 1
while True:
@@ -381,14 +428,20 @@ class Connection(object):
self.reconnect()
def close(self):
- """Close/release this connection"""
+ """Close/release this connection."""
self.cancel_consumer_thread()
self.wait_on_proxy_callbacks()
- self.connection.close()
+ try:
+ self.connection.close()
+ except Exception:
+ # NOTE(dripton) Logging exceptions that happen during cleanup just
+ # causes confusion; there's really nothing useful we can do with
+ # them.
+ pass
self.connection = None
def reset(self):
- """Reset a connection so it can be used again"""
+ """Reset a connection so it can be used again."""
self.cancel_consumer_thread()
self.wait_on_proxy_callbacks()
self.session.close()
@@ -412,7 +465,7 @@ class Connection(object):
return self.ensure(_connect_error, _declare_consumer)
def iterconsume(self, limit=None, timeout=None):
- """Return an iterator that will consume from all queues/consumers"""
+ """Return an iterator that will consume from all queues/consumers."""
def _error_callback(exc):
if isinstance(exc, qpid_exceptions.Empty):
@@ -436,7 +489,7 @@ class Connection(object):
yield self.ensure(_error_callback, _consume)
def cancel_consumer_thread(self):
- """Cancel a consumer thread"""
+ """Cancel a consumer thread."""
if self.consumer_thread is not None:
self.consumer_thread.kill()
try:
@@ -451,7 +504,7 @@ class Connection(object):
proxy_cb.wait()
def publisher_send(self, cls, topic, msg):
- """Send to a publisher based on the publisher class"""
+ """Send to a publisher based on the publisher class."""
def _connect_error(exc):
log_info = {'topic': topic, 'err_str': str(exc)}
@@ -481,15 +534,15 @@ class Connection(object):
topic, callback)
def declare_fanout_consumer(self, topic, callback):
- """Create a 'fanout' consumer"""
+ """Create a 'fanout' consumer."""
self.declare_consumer(FanoutConsumer, topic, callback)
def direct_send(self, msg_id, msg):
- """Send a 'direct' message"""
+ """Send a 'direct' message."""
self.publisher_send(DirectPublisher, msg_id, msg)
def topic_send(self, topic, msg, timeout=None):
- """Send a 'topic' message"""
+ """Send a 'topic' message."""
#
# We want to create a message with attributes, e.g. a TTL. We
# don't really need to keep 'msg' in its JSON format any longer
@@ -504,15 +557,15 @@ class Connection(object):
self.publisher_send(TopicPublisher, topic, qpid_message)
def fanout_send(self, topic, msg):
- """Send a 'fanout' message"""
+ """Send a 'fanout' message."""
self.publisher_send(FanoutPublisher, topic, msg)
def notify_send(self, topic, msg, **kwargs):
- """Send a notify message on a topic"""
+ """Send a notify message on a topic."""
self.publisher_send(NotifyPublisher, topic, msg)
def consume(self, limit=None):
- """Consume from all queues/consumers"""
+ """Consume from all queues/consumers."""
it = self.iterconsume(limit=limit)
while True:
try:
@@ -521,7 +574,7 @@ class Connection(object):
return
def consume_in_thread(self):
- """Consumer from all queues/consumers in a greenthread"""
+ """Consumer from all queues/consumers in a greenthread."""
def _consumer_thread():
try:
self.consume()
@@ -532,7 +585,7 @@ class Connection(object):
return self.consumer_thread
def create_consumer(self, topic, proxy, fanout=False):
- """Create a consumer that calls a method in a proxy object"""
+ """Create a consumer that calls a method in a proxy object."""
proxy_cb = rpc_amqp.ProxyCallback(
self.conf, proxy,
rpc_amqp.get_connection_pool(self.conf, Connection))
@@ -548,7 +601,7 @@ class Connection(object):
return consumer
def create_worker(self, topic, proxy, pool_name):
- """Create a worker that calls a method in a proxy object"""
+ """Create a worker that calls a method in a proxy object."""
proxy_cb = rpc_amqp.ProxyCallback(
self.conf, proxy,
rpc_amqp.get_connection_pool(self.conf, Connection))
@@ -591,7 +644,7 @@ class Connection(object):
def create_connection(conf, new=True):
- """Create a connection"""
+ """Create a connection."""
return rpc_amqp.create_connection(
conf, new,
rpc_amqp.get_connection_pool(conf, Connection))
diff --git a/nova/paths.py b/nova/paths.py
index 8d84289ae..8d8a632c0 100644
--- a/nova/paths.py
+++ b/nova/paths.py
@@ -18,6 +18,7 @@
# under the License.
import os
+import sys
from oslo.config import cfg
@@ -27,7 +28,7 @@ path_opts = [
'../')),
help='Directory where the nova python module is installed'),
cfg.StrOpt('bindir',
- default='$pybasedir/bin',
+ default=os.path.join(sys.prefix, 'local', 'bin'),
help='Directory where nova binaries are installed'),
cfg.StrOpt('state_path',
default='$pybasedir',
diff --git a/nova/scheduler/chance.py b/nova/scheduler/chance.py
index 6e9688d81..0f8f3c45a 100644
--- a/nova/scheduler/chance.py
+++ b/nova/scheduler/chance.py
@@ -60,9 +60,12 @@ class ChanceScheduler(driver.Scheduler):
def select_hosts(self, context, request_spec, filter_properties):
"""Selects a set of random hosts."""
- return [self._schedule(context, CONF.compute_topic,
+ hosts = [self._schedule(context, CONF.compute_topic,
request_spec, filter_properties)
for instance_uuid in request_spec.get('instance_uuids', [])]
+ if not hosts:
+ raise exception.NoValidHost(reason="")
+ return hosts
def schedule_run_instance(self, context, request_spec,
admin_password, injected_files,
diff --git a/nova/scheduler/driver.py b/nova/scheduler/driver.py
index 4ad6b8513..5fed1e397 100644
--- a/nova/scheduler/driver.py
+++ b/nova/scheduler/driver.py
@@ -257,7 +257,7 @@ class Scheduler(object):
# If dest is not specified, have scheduler pick one.
if dest is None:
- instance_type = flavors.extract_instance_type(instance_ref)
+ instance_type = flavors.extract_flavor(instance_ref)
if not instance_ref['image_ref']:
image = None
else:
diff --git a/nova/scheduler/filter_scheduler.py b/nova/scheduler/filter_scheduler.py
index 566b7846d..08cb6a20e 100644
--- a/nova/scheduler/filter_scheduler.py
+++ b/nova/scheduler/filter_scheduler.py
@@ -69,7 +69,7 @@ class FilterScheduler(driver.Scheduler):
notifier.notify(context, notifier.publisher_id("scheduler"),
'scheduler.run_instance.start', notifier.INFO, payload)
- instance_uuids = request_spec.pop('instance_uuids')
+ instance_uuids = request_spec.get('instance_uuids')
LOG.info(_("Attempting to build %(num_instances)d instance(s) "
"uuids: %(instance_uuids)s"),
{'num_instances': len(instance_uuids),
@@ -79,6 +79,11 @@ class FilterScheduler(driver.Scheduler):
weighed_hosts = self._schedule(context, request_spec,
filter_properties, instance_uuids)
+ # NOTE: Pop instance_uuids as individual creates do not need the
+ # set of uuids. Do not pop before here as the upper exception
+ # handler fo NoValidHost needs the uuid to set error state
+ instance_uuids = request_spec.pop('instance_uuids')
+
# NOTE(comstud): Make sure we do not pass this through. It
# contains an instance of RpcContext that cannot be serialized.
filter_properties.pop('context', None)
@@ -387,7 +392,7 @@ class FilterScheduler(driver.Scheduler):
host_state = self.host_manager.host_state_cls(dest, node)
host_state.update_from_compute_node(compute)
- instance_type = flavors.extract_instance_type(instance_ref)
+ instance_type = flavors.extract_flavor(instance_ref)
filter_properties = {'instance_type': instance_type}
hosts = self.host_manager.get_filtered_hosts([host_state],
diff --git a/nova/scheduler/filters/affinity_filter.py b/nova/scheduler/filters/affinity_filter.py
index bb7cb4aff..ed2fa5603 100644
--- a/nova/scheduler/filters/affinity_filter.py
+++ b/nova/scheduler/filters/affinity_filter.py
@@ -87,7 +87,7 @@ class SimpleCIDRAffinityFilter(AffinityFilter):
class GroupAntiAffinityFilter(AffinityFilter):
"""Schedule the instance on a different host from a set of group
- instances.
+ hosts.
"""
def host_passes(self, host_state, filter_properties):
diff --git a/nova/scheduler/filters/aggregate_instance_extra_specs.py b/nova/scheduler/filters/aggregate_instance_extra_specs.py
index 6e1e47f68..3cb74573a 100644
--- a/nova/scheduler/filters/aggregate_instance_extra_specs.py
+++ b/nova/scheduler/filters/aggregate_instance_extra_specs.py
@@ -47,13 +47,17 @@ class AggregateInstanceExtraSpecsFilter(filters.BaseHostFilter):
aggregate_vals = metadata.get(key, None)
if not aggregate_vals:
LOG.debug(_("%(host_state)s fails instance_type extra_specs "
- "requirements"), locals())
+ "requirements. Extra_spec %(key)s is not in aggregate."),
+ {'host_state': host_state, 'key': key})
return False
for aggregate_val in aggregate_vals:
if extra_specs_ops.match(aggregate_val, req):
break
else:
LOG.debug(_("%(host_state)s fails instance_type extra_specs "
- "requirements"), locals())
+ "requirements. '%(aggregate_vals)s' do not "
+ "match '%(req)s'"),
+ {'host_state': host_state, 'req': req,
+ 'aggregate_vals': aggregate_vals})
return False
return True
diff --git a/nova/scheduler/filters/compute_capabilities_filter.py b/nova/scheduler/filters/compute_capabilities_filter.py
index e559c18a8..232e98880 100644
--- a/nova/scheduler/filters/compute_capabilities_filter.py
+++ b/nova/scheduler/filters/compute_capabilities_filter.py
@@ -55,6 +55,6 @@ class ComputeCapabilitiesFilter(filters.BaseHostFilter):
if not self._satisfies_extra_specs(host_state.capabilities,
instance_type):
LOG.debug(_("%(host_state)s fails instance_type extra_specs "
- "requirements"), locals())
+ "requirements"), {'host_state': host_state})
return False
return True
diff --git a/nova/scheduler/filters/compute_filter.py b/nova/scheduler/filters/compute_filter.py
index f6c643c1c..e4255a3e7 100644
--- a/nova/scheduler/filters/compute_filter.py
+++ b/nova/scheduler/filters/compute_filter.py
@@ -38,10 +38,10 @@ class ComputeFilter(filters.BaseHostFilter):
alive = self.servicegroup_api.service_is_up(service)
if not alive or service['disabled']:
LOG.debug(_("%(host_state)s is disabled or has not been "
- "heard from in a while"), locals())
+ "heard from in a while"), {'host_state': host_state})
return False
if not capabilities.get("enabled", True):
LOG.debug(_("%(host_state)s is disabled via capabilities"),
- locals())
+ {'host_state': host_state})
return False
return True
diff --git a/nova/scheduler/filters/disk_filter.py b/nova/scheduler/filters/disk_filter.py
index 517d43510..37911d5d5 100644
--- a/nova/scheduler/filters/disk_filter.py
+++ b/nova/scheduler/filters/disk_filter.py
@@ -46,7 +46,9 @@ class DiskFilter(filters.BaseHostFilter):
if not usable_disk_mb >= requested_disk:
LOG.debug(_("%(host_state)s does not have %(requested_disk)s MB "
"usable disk, it only has %(usable_disk_mb)s MB usable "
- "disk."), locals())
+ "disk."), {'host_state': host_state,
+ 'requested_disk': requested_disk,
+ 'usable_disk_mb': usable_disk_mb})
return False
disk_gb_limit = disk_mb_limit / 1024
diff --git a/nova/scheduler/filters/image_props_filter.py b/nova/scheduler/filters/image_props_filter.py
index 185d2f4e4..b25140e98 100644
--- a/nova/scheduler/filters/image_props_filter.py
+++ b/nova/scheduler/filters/image_props_filter.py
@@ -47,7 +47,7 @@ class ImagePropertiesFilter(filters.BaseHostFilter):
if not supp_instances:
LOG.debug(_("Instance contains properties %(image_props)s, "
"but no corresponding capabilities are advertised "
- "by the compute node"), locals())
+ "by the compute node"), {'image_props': image_props})
return False
def _compare_props(props, other_props):
@@ -60,12 +60,16 @@ class ImagePropertiesFilter(filters.BaseHostFilter):
if _compare_props(checked_img_props, supp_inst):
LOG.debug(_("Instance properties %(image_props)s "
"are satisfied by compute host capabilities "
- "%(capabilities)s"), locals())
+ "%(capabilities)s"),
+ {'image_props': image_props,
+ 'capabilities': capabilities})
return True
LOG.debug(_("Instance contains properties %(image_props)s "
"that are not provided by the compute node "
- "capabilities %(capabilities)s"), locals())
+ "capabilities %(capabilities)s"),
+ {'image_props': image_props,
+ 'capabilities': capabilities})
return False
def host_passes(self, host_state, filter_properties):
@@ -80,6 +84,6 @@ class ImagePropertiesFilter(filters.BaseHostFilter):
if not self._instance_supported(capabilities, image_props):
LOG.debug(_("%(host_state)s does not support requested "
- "instance_properties"), locals())
+ "instance_properties"), {'host_state': host_state})
return False
return True
diff --git a/nova/scheduler/filters/io_ops_filter.py b/nova/scheduler/filters/io_ops_filter.py
index 7d3337c1a..255563022 100644
--- a/nova/scheduler/filters/io_ops_filter.py
+++ b/nova/scheduler/filters/io_ops_filter.py
@@ -40,5 +40,7 @@ class IoOpsFilter(filters.BaseHostFilter):
passes = num_io_ops < max_io_ops
if not passes:
LOG.debug(_("%(host_state)s fails I/O ops check: Max IOs per host "
- "is set to %(max_io_ops)s"), locals())
+ "is set to %(max_io_ops)s"),
+ {'host_state': host_state,
+ 'max_io_ops': max_io_ops})
return passes
diff --git a/nova/scheduler/filters/num_instances_filter.py b/nova/scheduler/filters/num_instances_filter.py
index 06b5b5b73..2ed4a5454 100644
--- a/nova/scheduler/filters/num_instances_filter.py
+++ b/nova/scheduler/filters/num_instances_filter.py
@@ -38,5 +38,6 @@ class NumInstancesFilter(filters.BaseHostFilter):
if not passes:
LOG.debug(_("%(host_state)s fails num_instances check: Max "
"instances per host is set to %(max_instances)s"),
- locals())
+ {'host_state': host_state,
+ 'max_instances': max_instances})
return passes
diff --git a/nova/scheduler/filters/ram_filter.py b/nova/scheduler/filters/ram_filter.py
index fdf189735..7e20e3d15 100644
--- a/nova/scheduler/filters/ram_filter.py
+++ b/nova/scheduler/filters/ram_filter.py
@@ -45,7 +45,9 @@ class RamFilter(filters.BaseHostFilter):
if not usable_ram >= requested_ram:
LOG.debug(_("%(host_state)s does not have %(requested_ram)s MB "
"usable ram, it only has %(usable_ram)s MB usable ram."),
- locals())
+ {'host_state': host_state,
+ 'requested_ram': requested_ram,
+ 'usable_ram': usable_ram})
return False
# save oversubscription limit for compute node to test against:
diff --git a/nova/scheduler/filters/retry_filter.py b/nova/scheduler/filters/retry_filter.py
index d49ad1c36..f82488527 100644
--- a/nova/scheduler/filters/retry_filter.py
+++ b/nova/scheduler/filters/retry_filter.py
@@ -39,7 +39,9 @@ class RetryFilter(filters.BaseHostFilter):
pass_msg = "passes" if passes else "fails"
LOG.debug(_("Host %(host)s %(pass_msg)s. Previously tried hosts: "
- "%(hosts)s") % locals())
+ "%(hosts)s") % {'host': host,
+ 'pass_msg': pass_msg,
+ 'hosts': hosts})
# Host passes if it's not in the list of previously attempted hosts:
return passes
diff --git a/nova/scheduler/host_manager.py b/nova/scheduler/host_manager.py
index 9dbe6bd67..b5fbb8594 100644
--- a/nova/scheduler/host_manager.py
+++ b/nova/scheduler/host_manager.py
@@ -66,19 +66,19 @@ class ReadOnlyDict(UserDict.IterableUserDict):
self.update(source)
def __setitem__(self, key, item):
- raise TypeError
+ raise TypeError()
def __delitem__(self, key):
- raise TypeError
+ raise TypeError()
def clear(self):
- raise TypeError
+ raise TypeError()
def pop(self, key, *args):
- raise TypeError
+ raise TypeError()
def popitem(self):
- raise TypeError
+ raise TypeError()
def update(self, source=None):
if source is None:
@@ -88,7 +88,7 @@ class ReadOnlyDict(UserDict.IterableUserDict):
elif isinstance(source, type({})):
self.data = source
else:
- raise TypeError
+ raise TypeError()
class HostState(object):
diff --git a/nova/scheduler/scheduler_options.py b/nova/scheduler/scheduler_options.py
index f7aa91155..bae470d1b 100644
--- a/nova/scheduler/scheduler_options.py
+++ b/nova/scheduler/scheduler_options.py
@@ -66,7 +66,7 @@ class SchedulerOptions(object):
"""Get the last modified datetime. Broken out for testing."""
try:
return os.path.getmtime(filename)
- except os.error, e:
+ except os.error as e:
with excutils.save_and_reraise_exception():
LOG.exception(_("Could not stat scheduler options file "
"%(filename)s: '%(e)s'"), locals())
@@ -75,7 +75,7 @@ class SchedulerOptions(object):
"""Decode the JSON file. Broken out for testing."""
try:
return json.load(handle)
- except ValueError, e:
+ except ValueError as e:
LOG.exception(_("Could not decode scheduler options: "
"'%(e)s'") % locals())
return {}
diff --git a/nova/scheduler/utils.py b/nova/scheduler/utils.py
new file mode 100644
index 000000000..d17ab89b2
--- /dev/null
+++ b/nova/scheduler/utils.py
@@ -0,0 +1,33 @@
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Utility methods for scheduling."""
+
+from nova.compute import flavors
+from nova.openstack.common import jsonutils
+
+
+def build_request_spec(image, instances):
+ """Build a request_spec for the scheduler.
+
+ The request_spec assumes that all instances to be scheduled are the same
+ type.
+ """
+ instance = jsonutils.to_primitive(instances[0])
+ request_spec = {
+ 'image': image,
+ 'instance_properties': instance,
+ 'instance_type': flavors.extract_flavor(instance),
+ 'instance_uuids': [inst['uuid'] for inst in instances]}
+ return request_spec
diff --git a/nova/service.py b/nova/service.py
index 3731986c4..245640e5e 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -19,7 +19,6 @@
"""Generic Node base class for all workers that run on hosts."""
-import inspect
import os
import random
import sys
@@ -238,7 +237,7 @@ class Service(service.Service):
if not host:
host = CONF.host
if not binary:
- binary = os.path.basename(inspect.stack()[-1][1])
+ binary = os.path.basename(sys.argv[0])
if not topic:
topic = binary.rpartition('nova-')[2]
if not manager:
diff --git a/nova/storage/linuxscsi.py b/nova/storage/linuxscsi.py
index 95cec192d..d8c8b7f50 100644
--- a/nova/storage/linuxscsi.py
+++ b/nova/storage/linuxscsi.py
@@ -112,8 +112,11 @@ def find_multipath_device(device):
# on /etc/multipath.conf settings.
if info[1][:2] == "dm":
mdev = "/dev/%s" % info[1]
+ mdev_id = info[0]
elif info[2][:2] == "dm":
mdev = "/dev/%s" % info[2]
+ mdev_id = info[1].replace('(', '')
+ mdev_id = mdev_id.replace(')', '')
if mdev is None:
LOG.warn(_("Couldn't find multipath device %(line)s")
@@ -123,20 +126,23 @@ def find_multipath_device(device):
LOG.debug(_("Found multipath device = %(mdev)s") % locals())
device_lines = lines[3:]
for dev_line in device_lines:
- dev_line = dev_line.strip()
- dev_line = dev_line[3:]
+ if dev_line.find("policy") != -1:
+ continue
+
+ dev_line = dev_line.lstrip(' |-`')
dev_info = dev_line.split()
- if dev_line.find("policy") == -1:
- address = dev_info[0].split(":")
+ address = dev_info[0].split(":")
+
+ dev = {'device': '/dev/%s' % dev_info[1],
+ 'host': address[0], 'channel': address[1],
+ 'id': address[2], 'lun': address[3]
+ }
- dev = {'device': '/dev/%s' % dev_info[1],
- 'host': address[0], 'channel': address[1],
- 'id': address[2], 'lun': address[3]
- }
- devices.append(dev)
+ devices.append(dev)
if mdev is not None:
info = {"device": mdev,
+ "id": mdev_id,
"devices": devices}
return info
return None
diff --git a/nova/test.py b/nova/test.py
index 6dad0784a..d7502b4ea 100644
--- a/nova/test.py
+++ b/nova/test.py
@@ -61,6 +61,7 @@ CONF.register_opts(test_opts)
CONF.import_opt('sql_connection',
'nova.openstack.common.db.sqlalchemy.session')
CONF.import_opt('sqlite_db', 'nova.openstack.common.db.sqlalchemy.session')
+CONF.import_opt('enabled', 'nova.api.openstack', group='osapi_v3')
CONF.set_override('use_stderr', False)
logging.setup('nova')
@@ -87,7 +88,6 @@ class Database(fixtures.Fixture):
if os.path.exists(testdb):
return
db_migrate.db_sync()
- self.post_migrations()
if sql_connection == "sqlite://":
conn = self.engine.connect()
self._DB = "".join(line for line in conn.connection.iterdump())
@@ -107,8 +107,13 @@ class Database(fixtures.Fixture):
shutil.copyfile(paths.state_path_rel(self.sqlite_clean_db),
paths.state_path_rel(self.sqlite_db))
- def post_migrations(self):
- """Any addition steps that are needed outside of the migrations."""
+
+class SampleNetworks(fixtures.Fixture):
+
+ """Create sample networks in the database."""
+
+ def setUp(self):
+ super(SampleNetworks, self).setUp()
ctxt = context.get_admin_context()
network = network_manager.VlanManager()
bridge_interface = CONF.flat_interface or CONF.vlan_interface
@@ -184,7 +189,12 @@ class TestingException(Exception):
class TestCase(testtools.TestCase):
- """Test case base class for all unit tests."""
+ """Test case base class for all unit tests.
+
+ Due to the slowness of DB access, please consider deriving from
+ `NoDBTestCase` first.
+ """
+ USES_DB = True
def setUp(self):
"""Run before each test method to initialize test environment."""
@@ -212,13 +222,15 @@ class TestCase(testtools.TestCase):
self.log_fixture = self.useFixture(fixtures.FakeLogger())
self.useFixture(conf_fixture.ConfFixture(CONF))
- global _DB_CACHE
- if not _DB_CACHE:
- _DB_CACHE = Database(session, migration,
- sql_connection=CONF.sql_connection,
- sqlite_db=CONF.sqlite_db,
- sqlite_clean_db=CONF.sqlite_clean_db)
- self.useFixture(_DB_CACHE)
+ if self.USES_DB:
+ global _DB_CACHE
+ if not _DB_CACHE:
+ _DB_CACHE = Database(session, migration,
+ sql_connection=CONF.sql_connection,
+ sqlite_db=CONF.sqlite_db,
+ sqlite_clean_db=CONF.sqlite_clean_db)
+
+ self.useFixture(_DB_CACHE)
mox_fixture = self.useFixture(MoxStubout())
self.mox = mox_fixture.mox
@@ -227,6 +239,7 @@ class TestCase(testtools.TestCase):
self.useFixture(fixtures.EnvironmentVariable('http_proxy'))
self.policy = self.useFixture(policy_fixture.PolicyFixture())
CONF.set_override('fatal_exception_format_errors', True)
+ CONF.set_override('enabled', True, 'osapi_v3')
def _clear_attrs(self):
# Delete attributes that don't start with _ so they don't pin
@@ -268,3 +281,12 @@ class TimeOverride(fixtures.Fixture):
super(TimeOverride, self).setUp()
timeutils.set_time_override()
self.addCleanup(timeutils.clear_time_override)
+
+
+class NoDBTestCase(TestCase):
+ """
+ `NoDBTestCase` differs from TestCase in that DB access is not supported.
+ This makes tests run significantly faster. If possible, all new tests
+ should derive from this class.
+ """
+ USES_DB = False
diff --git a/nova/tests/test_api.py b/nova/tests/api/ec2/test_api.py
index 949f54512..3c3ac6c6c 100644
--- a/nova/tests/test_api.py
+++ b/nova/tests/api/ec2/test_api.py
@@ -309,7 +309,7 @@ class ApiEc2TestCase(test.TestCase):
try:
self.ec2.create_key_pair('test')
- except boto_exc.EC2ResponseError, e:
+ except boto_exc.EC2ResponseError as e:
if e.code == 'InvalidKeyPair.Duplicate':
pass
else:
diff --git a/nova/tests/api/ec2/test_cinder_cloud.py b/nova/tests/api/ec2/test_cinder_cloud.py
index 5d02a28d7..4b578a787 100644
--- a/nova/tests/api/ec2/test_cinder_cloud.py
+++ b/nova/tests/api/ec2/test_cinder_cloud.py
@@ -34,13 +34,14 @@ from nova import exception
from nova.openstack.common import rpc
from nova import test
from nova.tests import fake_network
+from nova.tests import fake_utils
from nova.tests.image import fake
from nova.tests import matchers
from nova import volume
CONF = cfg.CONF
CONF.import_opt('compute_driver', 'nova.virt.driver')
-CONF.import_opt('default_instance_type', 'nova.compute.flavors')
+CONF.import_opt('default_flavor', 'nova.compute.flavors')
CONF.import_opt('use_ipv6', 'nova.netconf')
@@ -88,6 +89,7 @@ class CinderCloudTestCase(test.TestCase):
super(CinderCloudTestCase, self).setUp()
ec2utils.reset_cache()
vol_tmpdir = self.useFixture(fixtures.TempDir()).path
+ fake_utils.stub_out_utils_spawn_n(self.stubs)
self.flags(compute_driver='nova.virt.fake.FakeDriver',
volume_api_class='nova.tests.fake_volume.API')
@@ -413,8 +415,8 @@ class CinderCloudTestCase(test.TestCase):
def _setUpBlockDeviceMapping(self):
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
inst1 = db.instance_create(self.context,
{'image_ref': image_uuid,
'instance_type_id': 1,
@@ -756,7 +758,7 @@ class CinderCloudTestCase(test.TestCase):
self._restart_compute_service(periodic_interval_max=0.3)
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1,
'block_device_mapping': [{'device_name': '/dev/sdb',
'volume_id': vol1_uuid,
@@ -838,7 +840,7 @@ class CinderCloudTestCase(test.TestCase):
# enforce periodic tasks run in short time to avoid wait for 60s.
self._restart_compute_service(periodic_interval_max=0.3)
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1,
'block_device_mapping': [{'device_name': '/dev/sdb',
'volume_id': vol1_uuid,
@@ -919,7 +921,7 @@ class CinderCloudTestCase(test.TestCase):
snap2_uuid = ec2utils.ec2_snap_id_to_uuid(snap2['snapshotId'])
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1,
'block_device_mapping': [{'device_name': '/dev/vdb',
'snapshot_id': snap1_uuid,
@@ -979,7 +981,7 @@ class CinderCloudTestCase(test.TestCase):
create_volumes_and_snapshots=True)
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1}
ec2_instance_id = self._run_instance(**kwargs)
diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py
index e58d260fb..b4cb24404 100644
--- a/nova/tests/api/ec2/test_cloud.py
+++ b/nova/tests/api/ec2/test_cloud.py
@@ -50,6 +50,7 @@ from nova import test
from nova.tests.api.openstack.compute.contrib import (
test_quantum_security_groups as test_quantum)
from nova.tests import fake_network
+from nova.tests import fake_utils
from nova.tests.image import fake
from nova.tests import matchers
from nova import utils
@@ -58,7 +59,7 @@ from nova import volume
CONF = cfg.CONF
CONF.import_opt('compute_driver', 'nova.virt.driver')
-CONF.import_opt('default_instance_type', 'nova.compute.flavors')
+CONF.import_opt('default_flavor', 'nova.compute.flavors')
CONF.import_opt('use_ipv6', 'nova.netconf')
LOG = logging.getLogger(__name__)
@@ -107,10 +108,12 @@ def get_instances_with_cached_ips(orig_func, *args, **kwargs):
class CloudTestCase(test.TestCase):
def setUp(self):
super(CloudTestCase, self).setUp()
+ self.useFixture(test.SampleNetworks())
ec2utils.reset_cache()
self.flags(compute_driver='nova.virt.fake.FakeDriver',
volume_api_class='nova.tests.fake_volume.API')
self.useFixture(fixtures.FakeLogger('boto'))
+ fake_utils.stub_out_utils_spawn_n(self.stubs)
def fake_show(meh, context, id):
return {'id': id,
@@ -762,8 +765,8 @@ class CloudTestCase(test.TestCase):
self._stub_instance_get_with_fixed_ips('get')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
inst1 = db.instance_create(self.context, {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
@@ -868,8 +871,8 @@ class CloudTestCase(test.TestCase):
fake_change_instance_metadata)
# Create some test images
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
inst1_kwargs = {
'reservation_id': 'a',
@@ -1040,8 +1043,8 @@ class CloudTestCase(test.TestCase):
self._stub_instance_get_with_fixed_ips('get')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
inst_base = {
'reservation_id': 'a',
'image_ref': image_uuid,
@@ -1095,8 +1098,8 @@ class CloudTestCase(test.TestCase):
def test_instance_state(expected_code, expected_name,
power_state_, vm_state_, values=None):
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
values = values or {}
values.update({'image_ref': image_uuid, 'instance_type_id': 1,
'power_state': power_state_, 'vm_state': vm_state_,
@@ -1130,8 +1133,8 @@ class CloudTestCase(test.TestCase):
self._stub_instance_get_with_fixed_ips('get')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
inst1 = db.instance_create(self.context, {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
@@ -1157,8 +1160,8 @@ class CloudTestCase(test.TestCase):
def test_describe_instances_deleted(self):
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
args1 = {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
@@ -1182,8 +1185,8 @@ class CloudTestCase(test.TestCase):
def test_describe_instances_with_image_deleted(self):
image_uuid = 'aebef54a-ed67-4d10-912f-14455edce176'
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type(1))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor(1))
args1 = {'reservation_id': 'a',
'image_ref': image_uuid,
'instance_type_id': 1,
@@ -1616,7 +1619,7 @@ class CloudTestCase(test.TestCase):
def test_get_password_data(self):
instance_id = self._run_instance(
image_id='ami-1',
- instance_type=CONF.default_instance_type,
+ instance_type=CONF.default_flavor,
max_count=1)
self.stubs.Set(password, 'extract_password', lambda i: 'fakepass')
output = self.cloud.get_password_data(context=self.context,
@@ -1627,7 +1630,7 @@ class CloudTestCase(test.TestCase):
def test_console_output(self):
instance_id = self._run_instance(
image_id='ami-1',
- instance_type=CONF.default_instance_type,
+ instance_type=CONF.default_flavor,
max_count=1)
output = self.cloud.get_console_output(context=self.context,
instance_id=[instance_id])
@@ -1740,7 +1743,7 @@ class CloudTestCase(test.TestCase):
def test_run_instances(self):
kwargs = {'image_id': 'ami-00000001',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1}
run_instances = self.cloud.run_instances
@@ -1772,7 +1775,7 @@ class CloudTestCase(test.TestCase):
def test_run_instances_availability_zone(self):
kwargs = {'image_id': 'ami-00000001',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1,
'placement': {'availability_zone': 'fake'},
}
@@ -1808,7 +1811,7 @@ class CloudTestCase(test.TestCase):
def test_run_instances_image_state_none(self):
kwargs = {'image_id': 'ami-00000001',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1}
run_instances = self.cloud.run_instances
@@ -1827,7 +1830,7 @@ class CloudTestCase(test.TestCase):
def test_run_instances_image_state_invalid(self):
kwargs = {'image_id': 'ami-00000001',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1}
run_instances = self.cloud.run_instances
@@ -1848,7 +1851,7 @@ class CloudTestCase(test.TestCase):
def test_run_instances_image_status_active(self):
kwargs = {'image_id': 'ami-00000001',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1}
run_instances = self.cloud.run_instances
@@ -1887,7 +1890,7 @@ class CloudTestCase(test.TestCase):
self._restart_compute_service(periodic_interval_max=0.3)
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
instance_id = self._run_instance(**kwargs)
@@ -1916,7 +1919,7 @@ class CloudTestCase(test.TestCase):
def test_start_instances(self):
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
instance_id = self._run_instance(**kwargs)
@@ -1938,7 +1941,7 @@ class CloudTestCase(test.TestCase):
def test_stop_instances(self):
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
instance_id = self._run_instance(**kwargs)
@@ -1957,7 +1960,7 @@ class CloudTestCase(test.TestCase):
def test_terminate_instances(self):
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
instance_id = self._run_instance(**kwargs)
@@ -1978,7 +1981,7 @@ class CloudTestCase(test.TestCase):
def test_terminate_instances_invalid_instance_id(self):
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
instance_id = self._run_instance(**kwargs)
@@ -1989,7 +1992,7 @@ class CloudTestCase(test.TestCase):
def test_terminate_instances_disable_terminate(self):
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
instance_id = self._run_instance(**kwargs)
@@ -2022,7 +2025,7 @@ class CloudTestCase(test.TestCase):
def test_terminate_instances_two_instances(self):
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
inst1 = self._run_instance(**kwargs)
inst2 = self._run_instance(**kwargs)
@@ -2047,7 +2050,7 @@ class CloudTestCase(test.TestCase):
def test_reboot_instances(self):
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1, }
instance_id = self._run_instance(**kwargs)
@@ -2093,7 +2096,7 @@ class CloudTestCase(test.TestCase):
create_volumes_and_snapshots=True)
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1}
ec2_instance_id = self._run_instance(**kwargs)
@@ -2116,9 +2119,10 @@ class CloudTestCase(test.TestCase):
def fake_block_device_mapping_get_all_by_instance(context, inst_id):
return [dict(id=1,
+ source_type='snapshot',
+ destination_type='volume',
snapshot_id=snapshots[0],
volume_id=volumes[0],
- virtual_name=None,
volume_size=1,
device_name='sda1',
delete_on_termination=False,
@@ -2182,7 +2186,7 @@ class CloudTestCase(test.TestCase):
create_volumes_and_snapshots=True)
kwargs = {'image_id': 'ami-1',
- 'instance_type': CONF.default_instance_type,
+ 'instance_type': CONF.default_flavor,
'max_count': 1}
ec2_instance_id = self._run_instance(**kwargs)
@@ -2207,45 +2211,54 @@ class CloudTestCase(test.TestCase):
@staticmethod
def _fake_bdm_get(ctxt, id):
return [{'volume_id': 87654321,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
'snapshot_id': None,
'no_device': None,
- 'virtual_name': None,
'delete_on_termination': True,
'device_name': '/dev/sdh'},
{'volume_id': None,
'snapshot_id': 98765432,
+ 'source_type': 'snapshot',
+ 'destination_type': 'volume',
'no_device': None,
- 'virtual_name': None,
'delete_on_termination': True,
'device_name': '/dev/sdi'},
{'volume_id': None,
'snapshot_id': None,
'no_device': True,
- 'virtual_name': None,
'delete_on_termination': None,
'device_name': None},
{'volume_id': None,
'snapshot_id': None,
'no_device': None,
- 'virtual_name': 'ephemeral0',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'guest_format': None,
'delete_on_termination': None,
'device_name': '/dev/sdb'},
{'volume_id': None,
'snapshot_id': None,
'no_device': None,
- 'virtual_name': 'swap',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'guest_format': 'swap',
'delete_on_termination': None,
'device_name': '/dev/sdc'},
{'volume_id': None,
'snapshot_id': None,
'no_device': None,
- 'virtual_name': 'ephemeral1',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'guest_format': None,
'delete_on_termination': None,
'device_name': '/dev/sdd'},
{'volume_id': None,
'snapshot_id': None,
'no_device': None,
- 'virtual_name': 'ephemeral2',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'guest_format': None,
'delete_on_termination': None,
'device_name': '/dev/sd3'},
]
@@ -2256,9 +2269,9 @@ class CloudTestCase(test.TestCase):
self._fake_bdm_get)
def fake_get(ctxt, instance_id):
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
inst_type['name'] = 'fake_type'
- sys_meta = flavors.save_instance_type_info({}, inst_type)
+ sys_meta = flavors.save_flavor_info({}, inst_type)
sys_meta = utils.dict_to_metadata(sys_meta)
return {
'id': 0,
@@ -2334,7 +2347,7 @@ class CloudTestCase(test.TestCase):
def test_dia_iisb(expected_result, **kwargs):
"""test describe_instance_attribute
attribute instance_initiated_shutdown_behavior"""
- kwargs.update({'instance_type': CONF.default_instance_type,
+ kwargs.update({'instance_type': CONF.default_flavor,
'max_count': 1})
instance_id = self._run_instance(**kwargs)
diff --git a/nova/tests/api/openstack/compute/contrib/test_admin_actions.py b/nova/tests/api/openstack/compute/contrib/test_admin_actions.py
index 2efb6fe5a..5e64bdf94 100644
--- a/nova/tests/api/openstack/compute/contrib/test_admin_actions.py
+++ b/nova/tests/api/openstack/compute/contrib/test_admin_actions.py
@@ -22,10 +22,10 @@ from nova.api.openstack import compute
from nova.api.openstack.compute.contrib import admin_actions
from nova.compute import api as compute_api
from nova.compute import vm_states
+from nova.conductor import api as conductor_api
from nova import context
from nova import exception
from nova.openstack.common import jsonutils
-from nova.scheduler import rpcapi as scheduler_rpcapi
from nova import test
from nova.tests.api.openstack import fakes
@@ -140,16 +140,15 @@ class AdminActionsTest(test.TestCase):
task_state, expected_task_state):
return None
- def fake_scheduler_api_live_migration(self, context, dest,
- block_migration=False,
- disk_over_commit=False, instance=None,
- instance_id=None, topic=None):
+ def fake_migrate_server(self, context, instance,
+ scheduler_hint, live, rebuild, flavor,
+ block_migration, disk_over_commit):
return None
self.stubs.Set(compute_api.API, 'update', fake_update)
- self.stubs.Set(scheduler_rpcapi.SchedulerAPI,
- 'live_migration',
- fake_scheduler_api_live_migration)
+ self.stubs.Set(conductor_api.ComputeTaskAPI,
+ 'migrate_server',
+ fake_migrate_server)
res = req.get_response(app)
self.assertEqual(res.status_int, 202)
@@ -194,16 +193,15 @@ class AdminActionsTest(test.TestCase):
task_state, expected_task_state):
return None
- def fake_scheduler_api_live_migration(context, dest,
- block_migration=False,
- disk_over_commit=False, instance=None,
- instance_id=None, topic=None):
+ def fake_migrate_server(self, context, instance,
+ scheduler_hint, live, rebuild, flavor,
+ block_migration, disk_over_commit):
raise exception.ComputeServiceUnavailable(host='host')
self.stubs.Set(compute_api.API, 'update', fake_update)
- self.stubs.Set(scheduler_rpcapi.SchedulerAPI,
- 'live_migration',
- fake_scheduler_api_live_migration)
+ self.stubs.Set(conductor_api.ComputeTaskAPI,
+ 'migrate_server',
+ fake_migrate_server)
res = req.get_response(app)
self.assertEqual(res.status_int, 400)
@@ -232,16 +230,15 @@ class AdminActionsTest(test.TestCase):
task_state, expected_task_state):
return None
- def fake_scheduler_api_live_migration(context, dest,
- block_migration=False,
- disk_over_commit=False, instance=None,
- instance_id=None, topic=None):
+ def fake_migrate_server(self, context, instance,
+ scheduler_hint, live, rebuild, flavor,
+ block_migration, disk_over_commit):
raise exception.InvalidHypervisorType()
self.stubs.Set(compute_api.API, 'update', fake_update)
- self.stubs.Set(scheduler_rpcapi.SchedulerAPI,
- 'live_migration',
- fake_scheduler_api_live_migration)
+ self.stubs.Set(conductor_api.ComputeTaskAPI,
+ 'migrate_server',
+ fake_migrate_server)
res = req.get_response(app)
self.assertEqual(res.status_int, 400)
@@ -270,16 +267,15 @@ class AdminActionsTest(test.TestCase):
task_state, expected_task_state):
return None
- def fake_scheduler_api_live_migration(context, dest,
- block_migration=False,
- disk_over_commit=False, instance=None,
- instance_id=None, topic=None):
+ def fake_migrate_server(self, context, instance,
+ scheduler_hint, live, rebuild, flavor,
+ block_migration, disk_over_commit):
raise exception.UnableToMigrateToSelf(self.UUID, host='host')
self.stubs.Set(compute_api.API, 'update', fake_update)
- self.stubs.Set(scheduler_rpcapi.SchedulerAPI,
- 'live_migration',
- fake_scheduler_api_live_migration)
+ self.stubs.Set(conductor_api.ComputeTaskAPI,
+ 'migrate_server',
+ fake_migrate_server)
res = req.get_response(app)
self.assertEqual(res.status_int, 400)
@@ -308,16 +304,15 @@ class AdminActionsTest(test.TestCase):
task_state, expected_task_state):
return None
- def fake_scheduler_api_live_migration(context, dest,
- block_migration=False,
- disk_over_commit=False, instance=None,
- instance_id=None, topic=None):
+ def fake_migrate_server(self, context, instance,
+ scheduler_hint, live, rebuild, flavor,
+ block_migration, disk_over_commit):
raise exception.DestinationHypervisorTooOld()
self.stubs.Set(compute_api.API, 'update', fake_update)
- self.stubs.Set(scheduler_rpcapi.SchedulerAPI,
- 'live_migration',
- fake_scheduler_api_live_migration)
+ self.stubs.Set(conductor_api.ComputeTaskAPI,
+ 'migrate_server',
+ fake_migrate_server)
res = req.get_response(app)
self.assertEqual(res.status_int, 400)
diff --git a/nova/tests/api/openstack/compute/contrib/test_cells.py b/nova/tests/api/openstack/compute/contrib/test_cells.py
index bf6bff27c..a9e77693e 100644
--- a/nova/tests/api/openstack/compute/contrib/test_cells.py
+++ b/nova/tests/api/openstack/compute/contrib/test_cells.py
@@ -19,6 +19,7 @@ from lxml import etree
from webob import exc
from nova.api.openstack.compute.contrib import cells as cells_ext
+from nova.api.openstack import extensions
from nova.api.openstack import xmlutil
from nova.cells import rpcapi as cells_rpcapi
from nova import context
@@ -87,7 +88,8 @@ class CellsTest(test.TestCase):
self.stubs.Set(cells_rpcapi.CellsAPI, 'get_cell_info_for_neighbors',
fake_cells_api_get_all_cell_info)
- self.controller = cells_ext.Controller()
+ self.ext_mgr = self.mox.CreateMock(extensions.ExtensionManager)
+ self.controller = cells_ext.Controller(self.ext_mgr)
self.context = context.get_admin_context()
def _get_request(self, resource):
@@ -281,6 +283,74 @@ class CellsTest(test.TestCase):
self.assertEqual(cell_caps['cap1'], 'a;b')
self.assertEqual(cell_caps['cap2'], 'c;d')
+ def test_show_capacities(self):
+ self.ext_mgr.is_loaded('os-cell-capacities').AndReturn(True)
+ self.mox.StubOutWithMock(self.controller.cells_rpcapi,
+ 'get_capacities')
+ response = {"ram_free":
+ {"units_by_mb": {"8192": 0, "512": 13,
+ "4096": 1, "2048": 3, "16384": 0},
+ "total_mb": 7680},
+ "disk_free":
+ {"units_by_mb": {"81920": 11, "20480": 46,
+ "40960": 23, "163840": 5, "0": 0},
+ "total_mb": 1052672}
+ }
+ self.controller.cells_rpcapi.\
+ get_capacities(self.context, cell_name=None).AndReturn(response)
+ self.mox.ReplayAll()
+ req = self._get_request("cells/capacities")
+ req.environ["nova.context"] = self.context
+ res_dict = self.controller.capacities(req)
+ self.assertEqual(response, res_dict['cell']['capacities'])
+
+ def test_show_capacity_fails_with_non_admin_context(self):
+ self.ext_mgr.is_loaded('os-cell-capacities').AndReturn(True)
+ rules = {"compute_extension:cells": "is_admin:true"}
+ self.policy.set_rules(rules)
+
+ self.mox.ReplayAll()
+ req = self._get_request("cells/capacities")
+ req.environ["nova.context"] = self.context
+ req.environ["nova.context"].is_admin = False
+ self.assertRaises(exception.PolicyNotAuthorized,
+ self.controller.capacities, req)
+
+ def test_show_capacities_for_invalid_cell(self):
+ self.ext_mgr.is_loaded('os-cell-capacities').AndReturn(True)
+ self.mox.StubOutWithMock(self.controller.cells_rpcapi,
+ 'get_capacities')
+ self.controller.cells_rpcapi. \
+ get_capacities(self.context, cell_name="invalid_cell").AndRaise(
+ exception.CellNotFound(cell_name="invalid_cell"))
+ self.mox.ReplayAll()
+ req = self._get_request("cells/invalid_cell/capacities")
+ req.environ["nova.context"] = self.context
+ self.assertRaises(exc.HTTPNotFound,
+ self.controller.capacities, req, "invalid_cell")
+
+ def test_show_capacities_for_cell(self):
+ self.ext_mgr.is_loaded('os-cell-capacities').AndReturn(True)
+ self.mox.StubOutWithMock(self.controller.cells_rpcapi,
+ 'get_capacities')
+ response = {"ram_free":
+ {"units_by_mb": {"8192": 0, "512": 13,
+ "4096": 1, "2048": 3, "16384": 0},
+ "total_mb": 7680},
+ "disk_free":
+ {"units_by_mb": {"81920": 11, "20480": 46,
+ "40960": 23, "163840": 5, "0": 0},
+ "total_mb": 1052672}
+ }
+ self.controller.cells_rpcapi.\
+ get_capacities(self.context, cell_name='cell_name').\
+ AndReturn(response)
+ self.mox.ReplayAll()
+ req = self._get_request("cells/capacities")
+ req.environ["nova.context"] = self.context
+ res_dict = self.controller.capacities(req, 'cell_name')
+ self.assertEqual(response, res_dict['cell']['capacities'])
+
def test_sync_instances(self):
call_info = {}
diff --git a/nova/tests/api/openstack/compute/contrib/test_coverage_ext.py b/nova/tests/api/openstack/compute/contrib/test_coverage_ext.py
index cd4229ddd..957625b34 100644
--- a/nova/tests/api/openstack/compute/contrib/test_coverage_ext.py
+++ b/nova/tests/api/openstack/compute/contrib/test_coverage_ext.py
@@ -47,7 +47,7 @@ class FakeCoverage(object):
def stop(self):
if not self.started:
- raise AssertionError
+ raise AssertionError()
self.started = False
def report(self, file):
diff --git a/nova/tests/api/openstack/compute/contrib/test_fixed_ips.py b/nova/tests/api/openstack/compute/contrib/test_fixed_ips.py
index 67417e60e..2f9f6c5bc 100644
--- a/nova/tests/api/openstack/compute/contrib/test_fixed_ips.py
+++ b/nova/tests/api/openstack/compute/contrib/test_fixed_ips.py
@@ -132,6 +132,11 @@ class FixedIpTest(test.TestCase):
self.assertRaises(webob.exc.HTTPNotFound, self.controller.show, req,
'10.0.0.1')
+ def test_fixed_ips_get_invalid_ip_address(self):
+ req = fakes.HTTPRequest.blank('/v2/fake/os-fixed-ips/inv.ali.d.ip')
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.show, req,
+ 'inv.ali.d.ip')
+
def test_fixed_ips_get_deleted_ip_fail(self):
req = fakes.HTTPRequest.blank('/v2/fake/os-fixed-ips/10.0.0.2')
self.assertRaises(webob.exc.HTTPNotFound, self.controller.show, req,
@@ -154,6 +159,13 @@ class FixedIpTest(test.TestCase):
self.assertRaises(webob.exc.HTTPNotFound, self.controller.action, req,
'10.0.0.1', body)
+ def test_fixed_ip_reserve_invalid_ip_address(self):
+ body = {'reserve': None}
+ req = fakes.HTTPRequest.blank(
+ '/v2/fake/os-fixed-ips/inv.ali.d.ip/action')
+ self.assertRaises(webob.exc.HTTPNotFound,
+ self.controller.action, req, 'inv.ali.d.ip', body)
+
def test_fixed_ip_reserve_deleted_ip(self):
body = {'reserve': None}
req = fakes.HTTPRequest.blank(
@@ -178,6 +190,13 @@ class FixedIpTest(test.TestCase):
self.assertRaises(webob.exc.HTTPNotFound, self.controller.action, req,
'10.0.0.1', body)
+ def test_fixed_ip_unreserve_invalid_ip_address(self):
+ body = {'unreserve': None}
+ req = fakes.HTTPRequest.blank(
+ '/v2/fake/os-fixed-ips/inv.ali.d.ip/action')
+ self.assertRaises(webob.exc.HTTPNotFound,
+ self.controller.action, req, 'inv.ali.d.ip', body)
+
def test_fixed_ip_unreserve_deleted_ip(self):
body = {'unreserve': None}
req = fakes.HTTPRequest.blank(
diff --git a/nova/tests/api/openstack/compute/contrib/test_flavor_access.py b/nova/tests/api/openstack/compute/contrib/test_flavor_access.py
index 6bae7882f..d072e0784 100644
--- a/nova/tests/api/openstack/compute/contrib/test_flavor_access.py
+++ b/nova/tests/api/openstack/compute/contrib/test_flavor_access.py
@@ -27,7 +27,7 @@ from nova import test
from nova.tests.api.openstack import fakes
-def generate_instance_type(flavorid, ispublic):
+def generate_flavor(flavorid, ispublic):
return {
'id': flavorid,
'flavorid': str(flavorid),
@@ -49,10 +49,10 @@ def generate_instance_type(flavorid, ispublic):
INSTANCE_TYPES = {
- '0': generate_instance_type(0, True),
- '1': generate_instance_type(1, True),
- '2': generate_instance_type(2, False),
- '3': generate_instance_type(3, False)}
+ '0': generate_flavor(0, True),
+ '1': generate_flavor(1, True),
+ '2': generate_flavor(2, False),
+ '3': generate_flavor(3, False)}
ACCESS_LIST = [{'flavor_id': '2', 'project_id': 'proj2'},
@@ -60,7 +60,7 @@ ACCESS_LIST = [{'flavor_id': '2', 'project_id': 'proj2'},
{'flavor_id': '3', 'project_id': 'proj3'}]
-def fake_get_instance_type_access_by_flavor_id(flavorid):
+def fake_get_flavor_access_by_flavor_id(flavorid):
res = []
for access in ACCESS_LIST:
if access['flavor_id'] == flavorid:
@@ -68,7 +68,7 @@ def fake_get_instance_type_access_by_flavor_id(flavorid):
return res
-def fake_get_instance_type_by_flavor_id(flavorid):
+def fake_get_flavor_by_flavor_id(flavorid):
return INSTANCE_TYPES[flavorid]
@@ -80,7 +80,7 @@ def _has_flavor_access(flavorid, projectid):
return False
-def fake_get_all_types(context, inactive=0, filters=None):
+def fake_get_all_flavors(context, inactive=0, filters=None):
if filters == None or filters['is_public'] == None:
return INSTANCE_TYPES
@@ -121,11 +121,11 @@ class FlavorAccessTest(test.TestCase):
self.flavor_action_controller = flavor_access.FlavorActionController()
self.req = FakeRequest()
self.context = self.req.environ['nova.context']
- self.stubs.Set(flavors, 'get_instance_type_by_flavor_id',
- fake_get_instance_type_by_flavor_id)
- self.stubs.Set(flavors, 'get_all_types', fake_get_all_types)
- self.stubs.Set(flavors, 'get_instance_type_access_by_flavor_id',
- fake_get_instance_type_access_by_flavor_id)
+ self.stubs.Set(flavors, 'get_flavor_by_flavor_id',
+ fake_get_flavor_by_flavor_id)
+ self.stubs.Set(flavors, 'get_all_flavors', fake_get_all_flavors)
+ self.stubs.Set(flavors, 'get_flavor_access_by_flavor_id',
+ fake_get_flavor_access_by_flavor_id)
def _verify_flavor_list(self, result, expected):
# result already sorted by flavor_id
@@ -246,11 +246,11 @@ class FlavorAccessTest(test.TestCase):
resp.obj['flavor'])
def test_add_tenant_access(self):
- def stub_add_instance_type_access(flavorid, projectid, ctxt=None):
+ def stub_add_flavor_access(flavorid, projectid, ctxt=None):
self.assertEqual('3', flavorid, "flavorid")
self.assertEqual("proj2", projectid, "projectid")
- self.stubs.Set(flavors, 'add_instance_type_access',
- stub_add_instance_type_access)
+ self.stubs.Set(flavors, 'add_flavor_access',
+ stub_add_flavor_access)
expected = {'flavor_access':
[{'flavor_id': '3', 'tenant_id': 'proj3'}]}
body = {'addTenantAccess': {'tenant': 'proj2'}}
@@ -261,11 +261,11 @@ class FlavorAccessTest(test.TestCase):
self.assertEqual(result, expected)
def test_add_tenant_access_with_already_added_access(self):
- def stub_add_instance_type_access(flavorid, projectid, ctxt=None):
+ def stub_add_flavor_access(flavorid, projectid, ctxt=None):
raise exception.FlavorAccessExists(flavor_id=flavorid,
project_id=projectid)
- self.stubs.Set(flavors, 'add_instance_type_access',
- stub_add_instance_type_access)
+ self.stubs.Set(flavors, 'add_flavor_access',
+ stub_add_flavor_access)
body = {'addTenantAccess': {'tenant': 'proj2'}}
req = fakes.HTTPRequest.blank('/v2/fake/flavors/2/action',
use_admin_context=True)
@@ -274,11 +274,11 @@ class FlavorAccessTest(test.TestCase):
self.req, '3', body)
def test_remove_tenant_access_with_bad_access(self):
- def stub_remove_instance_type_access(flavorid, projectid, ctxt=None):
+ def stub_remove_flavor_access(flavorid, projectid, ctxt=None):
raise exception.FlavorAccessNotFound(flavor_id=flavorid,
project_id=projectid)
- self.stubs.Set(flavors, 'remove_instance_type_access',
- stub_remove_instance_type_access)
+ self.stubs.Set(flavors, 'remove_flavor_access',
+ stub_remove_flavor_access)
body = {'removeTenantAccess': {'tenant': 'proj2'}}
req = fakes.HTTPRequest.blank('/v2/fake/flavors/2/action',
use_admin_context=True)
diff --git a/nova/tests/api/openstack/compute/contrib/test_flavor_disabled.py b/nova/tests/api/openstack/compute/contrib/test_flavor_disabled.py
index 8a8660a67..e46e02a44 100644
--- a/nova/tests/api/openstack/compute/contrib/test_flavor_disabled.py
+++ b/nova/tests/api/openstack/compute/contrib/test_flavor_disabled.py
@@ -39,11 +39,11 @@ FAKE_FLAVORS = {
}
-def fake_instance_type_get_by_flavor_id(flavorid):
+def fake_flavor_get_by_flavor_id(flavorid):
return FAKE_FLAVORS['flavor %s' % flavorid]
-def fake_instance_type_get_all(*args, **kwargs):
+def fake_flavor_get_all(*args, **kwargs):
return FAKE_FLAVORS
@@ -57,11 +57,11 @@ class FlavorDisabledTest(test.TestCase):
'.flavor_disabled.Flavor_disabled')
self.flags(osapi_compute_extension=[ext])
fakes.stub_out_nw_api(self.stubs)
- self.stubs.Set(flavors, "get_all_types",
- fake_instance_type_get_all)
+ self.stubs.Set(flavors, "get_all_flavors",
+ fake_flavor_get_all)
self.stubs.Set(flavors,
- "get_instance_type_by_flavor_id",
- fake_instance_type_get_by_flavor_id)
+ "get_flavor_by_flavor_id",
+ fake_flavor_get_by_flavor_id)
def _make_request(self, url):
req = webob.Request.blank(url)
diff --git a/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py b/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py
index 2ca02cafa..df2c3d392 100644
--- a/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py
+++ b/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py
@@ -25,7 +25,7 @@ from nova import test
from nova.tests.api.openstack import fakes
-def fake_get_instance_type_by_flavor_id(flavorid, read_deleted='yes'):
+def fake_get_flavor_by_flavor_id(flavorid, read_deleted='yes'):
if flavorid == 'failtest':
raise exception.NotFound("Not found sucka!")
elif not str(flavorid) == '1234':
@@ -62,7 +62,7 @@ def fake_create(name, memory_mb, vcpus, root_gb, ephemeral_gb,
flavorid, swap, rxtx_factor, is_public):
if flavorid is None:
flavorid = 1234
- newflavor = fake_get_instance_type_by_flavor_id(flavorid,
+ newflavor = fake_get_flavor_by_flavor_id(flavorid,
read_deleted="no")
newflavor["name"] = name
@@ -81,8 +81,8 @@ class FlavorManageTest(test.TestCase):
def setUp(self):
super(FlavorManageTest, self).setUp()
self.stubs.Set(flavors,
- "get_instance_type_by_flavor_id",
- fake_get_instance_type_by_flavor_id)
+ "get_flavor_by_flavor_id",
+ fake_get_flavor_by_flavor_id)
self.stubs.Set(flavors, "destroy", fake_destroy)
self.stubs.Set(flavors, "create", fake_create)
self.flags(
@@ -191,7 +191,7 @@ class FlavorManageTest(test.TestCase):
for key in expected["flavor"]:
self.assertEquals(body["flavor"][key], expected["flavor"][key])
- def test_instance_type_exists_exception_returns_409(self):
+ def test_flavor_exists_exception_returns_409(self):
expected = {
"flavor": {
"name": "test",
diff --git a/nova/tests/api/openstack/compute/contrib/test_flavor_rxtx.py b/nova/tests/api/openstack/compute/contrib/test_flavor_rxtx.py
index 965d0e1bb..5843a60a1 100644
--- a/nova/tests/api/openstack/compute/contrib/test_flavor_rxtx.py
+++ b/nova/tests/api/openstack/compute/contrib/test_flavor_rxtx.py
@@ -38,11 +38,11 @@ FAKE_FLAVORS = {
}
-def fake_instance_type_get_by_flavor_id(flavorid):
+def fake_flavor_get_by_flavor_id(flavorid):
return FAKE_FLAVORS['flavor %s' % flavorid]
-def fake_instance_type_get_all(*args, **kwargs):
+def fake_flavor_get_all(*args, **kwargs):
return FAKE_FLAVORS
@@ -56,11 +56,11 @@ class FlavorRxtxTest(test.TestCase):
'.flavor_rxtx.Flavor_rxtx')
self.flags(osapi_compute_extension=[ext])
fakes.stub_out_nw_api(self.stubs)
- self.stubs.Set(flavors, "get_all_types",
- fake_instance_type_get_all)
+ self.stubs.Set(flavors, "get_all_flavors",
+ fake_flavor_get_all)
self.stubs.Set(flavors,
- "get_instance_type_by_flavor_id",
- fake_instance_type_get_by_flavor_id)
+ "get_flavor_by_flavor_id",
+ fake_flavor_get_by_flavor_id)
def _make_request(self, url):
req = webob.Request.blank(url)
diff --git a/nova/tests/api/openstack/compute/contrib/test_flavor_swap.py b/nova/tests/api/openstack/compute/contrib/test_flavor_swap.py
index ea3ab6e34..fd154479d 100644
--- a/nova/tests/api/openstack/compute/contrib/test_flavor_swap.py
+++ b/nova/tests/api/openstack/compute/contrib/test_flavor_swap.py
@@ -38,11 +38,12 @@ FAKE_FLAVORS = {
}
-def fake_instance_type_get_by_flavor_id(flavorid):
+#TOD(jogo) dedup these accross nova.api.openstack.contrib.test_flavor*
+def fake_flavor_get_by_flavor_id(flavorid):
return FAKE_FLAVORS['flavor %s' % flavorid]
-def fake_instance_type_get_all(*args, **kwargs):
+def fake_flavor_get_all(*args, **kwargs):
return FAKE_FLAVORS
@@ -56,11 +57,11 @@ class FlavorSwapTest(test.TestCase):
'.flavor_swap.Flavor_swap')
self.flags(osapi_compute_extension=[ext])
fakes.stub_out_nw_api(self.stubs)
- self.stubs.Set(flavors, "get_all_types",
- fake_instance_type_get_all)
+ self.stubs.Set(flavors, "get_all_flavors",
+ fake_flavor_get_all)
self.stubs.Set(flavors,
- "get_instance_type_by_flavor_id",
- fake_instance_type_get_by_flavor_id)
+ "get_flavor_by_flavor_id",
+ fake_flavor_get_by_flavor_id)
def _make_request(self, url):
req = webob.Request.blank(url)
diff --git a/nova/tests/api/openstack/compute/contrib/test_flavorextradata.py b/nova/tests/api/openstack/compute/contrib/test_flavorextradata.py
index f45f98bbc..ec0d68b04 100644
--- a/nova/tests/api/openstack/compute/contrib/test_flavorextradata.py
+++ b/nova/tests/api/openstack/compute/contrib/test_flavorextradata.py
@@ -23,7 +23,7 @@ from nova import test
from nova.tests.api.openstack import fakes
-def fake_get_instance_type_by_flavor_id(flavorid):
+def fake_get_flavor_by_flavor_id(flavorid):
return {
'id': flavorid,
'flavorid': str(flavorid),
@@ -41,10 +41,10 @@ def fake_get_instance_type_by_flavor_id(flavorid):
}
-def fake_get_all_types(inactive=0, filters=None):
+def fake_get_all_flavors(inactive=0, filters=None):
return {
- 'fake1': fake_get_instance_type_by_flavor_id(1),
- 'fake2': fake_get_instance_type_by_flavor_id(2)
+ 'fake1': fake_get_flavor_by_flavor_id(1),
+ 'fake2': fake_get_flavor_by_flavor_id(2)
}
@@ -54,9 +54,9 @@ class FlavorextradataTest(test.TestCase):
ext = ('nova.api.openstack.compute.contrib'
'.flavorextradata.Flavorextradata')
self.flags(osapi_compute_extension=[ext])
- self.stubs.Set(flavors, 'get_instance_type_by_flavor_id',
- fake_get_instance_type_by_flavor_id)
- self.stubs.Set(flavors, 'get_all_types', fake_get_all_types)
+ self.stubs.Set(flavors, 'get_flavor_by_flavor_id',
+ fake_get_flavor_by_flavor_id)
+ self.stubs.Set(flavors, 'get_all_flavors', fake_get_all_flavors)
def _verify_flavor_response(self, flavor, expected):
for key in expected:
diff --git a/nova/tests/api/openstack/compute/contrib/test_instance_actions.py b/nova/tests/api/openstack/compute/contrib/test_instance_actions.py
index 573385a52..871b831ac 100644
--- a/nova/tests/api/openstack/compute/contrib/test_instance_actions.py
+++ b/nova/tests/api/openstack/compute/contrib/test_instance_actions.py
@@ -178,6 +178,14 @@ class InstanceActionsTest(test.TestCase):
self.assertRaises(exc.HTTPNotFound, self.controller.show, req,
FAKE_UUID, FAKE_REQUEST_ID)
+ def test_instance_not_found(self):
+ def fake_get(self, context, instance_uuid):
+ raise exception.InstanceNotFound(instance_id=instance_uuid)
+ self.stubs.Set(compute_api.API, 'get', fake_get)
+ req = fakes.HTTPRequest.blank('/v2/123/servers/12/os-instance-actions')
+ self.assertRaises(exc.HTTPNotFound, self.controller.index, req,
+ FAKE_UUID)
+
class InstanceActionsSerializerTest(test.TestCase):
def setUp(self):
diff --git a/nova/tests/api/openstack/compute/contrib/test_keypairs.py b/nova/tests/api/openstack/compute/contrib/test_keypairs.py
index e338cad69..56b9fe84b 100644
--- a/nova/tests/api/openstack/compute/contrib/test_keypairs.py
+++ b/nova/tests/api/openstack/compute/contrib/test_keypairs.py
@@ -100,8 +100,12 @@ class KeypairsTest(test.TestCase):
req.headers['Content-Type'] = 'application/json'
res = req.get_response(self.app)
self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ 'Keypair name must be between 1 and 255 characters long',
+ res_dict['badRequest']['message'])
- def test_keypair_create_with_invalid_name(self):
+ def test_keypair_create_with_name_too_long(self):
body = {
'keypair': {
'name': 'a' * 256
@@ -113,6 +117,10 @@ class KeypairsTest(test.TestCase):
req.headers['Content-Type'] = 'application/json'
res = req.get_response(self.app)
self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ 'Keypair name must be between 1 and 255 characters long',
+ res_dict['badRequest']['message'])
def test_keypair_create_with_non_alphanumeric_name(self):
body = {
@@ -127,6 +135,10 @@ class KeypairsTest(test.TestCase):
res = req.get_response(self.app)
res_dict = jsonutils.loads(res.body)
self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Keypair name contains unsafe characters",
+ res_dict['badRequest']['message'])
def test_keypair_import(self):
body = {
@@ -183,6 +195,10 @@ class KeypairsTest(test.TestCase):
req.headers['Content-Type'] = 'application/json'
res = req.get_response(self.app)
self.assertEqual(res.status_int, 413)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Quota exceeded, too many key pairs.",
+ res_dict['overLimit']['message'])
def test_keypair_create_quota_limit(self):
@@ -203,6 +219,10 @@ class KeypairsTest(test.TestCase):
req.headers['Content-Type'] = 'application/json'
res = req.get_response(self.app)
self.assertEqual(res.status_int, 413)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Quota exceeded, too many key pairs.",
+ res_dict['overLimit']['message'])
def test_keypair_create_duplicate(self):
self.stubs.Set(db, "key_pair_create", db_key_pair_create_duplicate)
@@ -213,6 +233,10 @@ class KeypairsTest(test.TestCase):
req.headers['Content-Type'] = 'application/json'
res = req.get_response(self.app)
self.assertEqual(res.status_int, 409)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Key pair 'create_duplicate' already exists.",
+ res_dict['conflictingRequest']['message'])
def test_keypair_import_bad_key(self):
body = {
@@ -229,6 +253,10 @@ class KeypairsTest(test.TestCase):
res = req.get_response(self.app)
self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual("Keypair data is invalid",
+ res_dict['badRequest']['message'])
+
def test_keypair_delete(self):
req = webob.Request.blank('/v2/fake/os-keypairs/FAKE')
req.method = 'DELETE'
@@ -305,7 +333,7 @@ class KeypairsTest(test.TestCase):
self.assertTrue('key_name' in server_dict)
self.assertEquals(server_dict['key_name'], '')
- def test_keypair_create_with_invalid_keypairBody(self):
+ def test_keypair_create_with_invalid_keypair_body(self):
body = {'alpha': {'name': 'create_test'}}
req = webob.Request.blank('/v1.1/fake/os-keypairs')
req.method = 'POST'
diff --git a/nova/tests/api/openstack/compute/contrib/test_quantum_security_groups.py b/nova/tests/api/openstack/compute/contrib/test_quantum_security_groups.py
index 94bc36b1f..01ee72a64 100644
--- a/nova/tests/api/openstack/compute/contrib/test_quantum_security_groups.py
+++ b/nova/tests/api/openstack/compute/contrib/test_quantum_security_groups.py
@@ -116,6 +116,10 @@ class TestQuantumSecurityGroups(
# Enforced by Quantum server.
pass
+ def test_update_security_group(self):
+ # Enforced by Quantum server.
+ pass
+
def test_get_security_group_list(self):
self._create_sg_template().get('security_group')
req = fakes.HTTPRequest.blank('/v2/fake/os-security-groups')
@@ -133,8 +137,6 @@ class TestQuantumSecurityGroups(
device_id=test_security_groups.FAKE_UUID1)
expected = [{'rules': [], 'tenant_id': 'fake_tenant', 'id': sg['id'],
'name': 'test', 'description': 'test-description'}]
- self.stubs.Set(nova.db, 'instance_get',
- test_security_groups.return_server)
self.stubs.Set(nova.db, 'instance_get_by_uuid',
test_security_groups.return_server_by_uuid)
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s/os-security-groups'
@@ -196,13 +198,42 @@ class TestQuantumSecurityGroups(
self.stubs.Set(nova.db, 'instance_get',
test_security_groups.return_server)
- self.stubs.Set(nova.db, 'instance_get_by_uuid',
- test_security_groups.return_server_by_uuid)
body = dict(addSecurityGroup=dict(name="test"))
req = fakes.HTTPRequest.blank('/v2/fake/servers/1/action')
self.manager._addSecurityGroup(req, '1', body)
+ def test_associate_port_security_enabled_true(self):
+ sg = self._create_sg_template().get('security_group')
+ net = self._create_network()
+ self._create_port(
+ network_id=net['network']['id'], security_groups=[sg['id']],
+ port_security_enabled=True,
+ device_id=test_security_groups.FAKE_UUID1)
+
+ self.stubs.Set(nova.db, 'instance_get',
+ test_security_groups.return_server)
+ body = dict(addSecurityGroup=dict(name="test"))
+
+ req = fakes.HTTPRequest.blank('/v2/fake/servers/1/action')
+ self.manager._addSecurityGroup(req, '1', body)
+
+ def test_associate_port_security_enabled_false(self):
+ self._create_sg_template().get('security_group')
+ net = self._create_network()
+ self._create_port(
+ network_id=net['network']['id'], port_security_enabled=False,
+ device_id=test_security_groups.FAKE_UUID1)
+
+ self.stubs.Set(nova.db, 'instance_get',
+ test_security_groups.return_server)
+ body = dict(addSecurityGroup=dict(name="test"))
+
+ req = fakes.HTTPRequest.blank('/v2/fake/servers/1/action')
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.manager._addSecurityGroup,
+ req, '1', body)
+
def test_disassociate_by_non_existing_security_group_name(self):
self.stubs.Set(nova.db, 'instance_get',
test_security_groups.return_server)
@@ -233,8 +264,6 @@ class TestQuantumSecurityGroups(
self.stubs.Set(nova.db, 'instance_get',
test_security_groups.return_server)
- self.stubs.Set(nova.db, 'instance_get_by_uuid',
- test_security_groups.return_server_by_uuid)
body = dict(removeSecurityGroup=dict(name="test"))
req = fakes.HTTPRequest.blank('/v2/fake/servers/1/action')
@@ -258,16 +287,53 @@ class TestQuantumSecurityGroups(
{'name': sg2['name']}],
test_security_groups.FAKE_UUID2: [{'name': sg2['name']},
{'name': sg3['id']}]}
- self.stubs.Set(nova.db, 'instance_get',
- test_security_groups.return_server)
- self.stubs.Set(nova.db, 'instance_get_by_uuid',
- test_security_groups.return_server_by_uuid)
security_group_api = self.controller.security_group_api
bindings = (
security_group_api.get_instances_security_groups_bindings(
context.get_admin_context()))
self.assertEquals(bindings, expected)
+ def test_get_instance_security_groups(self):
+ sg1 = self._create_sg_template(name='test1').get('security_group')
+ sg2 = self._create_sg_template(name='test2').get('security_group')
+ # test name='' is replaced with id
+ sg3 = self._create_sg_template(name='').get('security_group')
+ net = self._create_network()
+ self._create_port(
+ network_id=net['network']['id'], security_groups=[sg1['id'],
+ sg2['id'],
+ sg3['id']],
+ device_id=test_security_groups.FAKE_UUID1)
+
+ expected = [{'name': sg1['name']}, {'name': sg2['name']},
+ {'name': sg3['id']}]
+ security_group_api = self.controller.security_group_api
+ sgs = security_group_api.get_instance_security_groups(
+ context.get_admin_context(), test_security_groups.FAKE_UUID1)
+ self.assertEquals(sgs, expected)
+
+ def test_create_port_with_sg_and_port_security_enabled_true(self):
+ sg1 = self._create_sg_template(name='test1').get('security_group')
+ net = self._create_network()
+ self._create_port(
+ network_id=net['network']['id'], security_groups=[sg1['id']],
+ port_security_enabled=True,
+ device_id=test_security_groups.FAKE_UUID1)
+ security_group_api = self.controller.security_group_api
+ sgs = security_group_api.get_instance_security_groups(
+ context.get_admin_context(), test_security_groups.FAKE_UUID1)
+ self.assertEquals(sgs, [{'name': 'test1'}])
+
+ def test_create_port_with_sg_and_port_security_enabled_false(self):
+ sg1 = self._create_sg_template(name='test1').get('security_group')
+ net = self._create_network()
+ self.assertRaises(exception.SecurityGroupCannotBeApplied,
+ self._create_port,
+ network_id=net['network']['id'],
+ security_groups=[sg1['id']],
+ port_security_enabled=False,
+ device_id=test_security_groups.FAKE_UUID1)
+
class TestQuantumSecurityGroupRulesTestCase(TestQuantumSecurityGroupsTestCase):
def setUp(self):
@@ -417,6 +483,13 @@ class TestQuantumSecurityGroupsOutputTest(TestQuantumSecurityGroupsTestCase):
self.assertEquals(group.get('name'), 'default')
def test_show(self):
+ def fake_get_instance_security_groups(inst, context, id):
+ return [{'name': 'fake-2-0'}, {'name': 'fake-2-1'}]
+
+ self.stubs.Set(quantum_driver.SecurityGroupAPI,
+ 'get_instance_security_groups',
+ fake_get_instance_security_groups)
+
url = '/v2/fake/servers'
image_uuid = 'c905cedb-7281-47e4-8a62-f26bc5fc4c77'
req = fakes.HTTPRequest.blank('/v2/fake/os-security-groups')
@@ -435,6 +508,16 @@ class TestQuantumSecurityGroupsOutputTest(TestQuantumSecurityGroupsTestCase):
name = 'fake-2-%s' % i
self.assertEqual(group.get('name'), name)
+ # Test that show (GET) returns the same information as create (POST)
+ url = '/v2/fake/servers/' + test_security_groups.UUID3
+ res = self._make_request(url)
+ self.assertEqual(res.status_int, 200)
+ server = self._get_server(res.body)
+
+ for i, group in enumerate(self._get_groups(server)):
+ name = 'fake-2-%s' % i
+ self.assertEqual(group.get('name'), name)
+
def test_detail(self):
url = '/v2/fake/servers/detail'
res = self._make_request(url)
@@ -540,8 +623,9 @@ class MockClient(object):
ret = {'status': 'ACTIVE', 'subnets': [], 'name': n.get('name'),
'admin_state_up': n.get('admin_state_up', True),
'tenant_id': 'fake_tenant',
- 'port_security_enabled': n.get('port_security_enabled', True),
'id': str(uuid.uuid4())}
+ if 'port_security_enabled' in n:
+ ret['port_security_enabled'] = n['port_security_enabled']
self._fake_networks[ret['id']] = ret
return {'network': ret}
@@ -564,21 +648,27 @@ class MockClient(object):
p = body.get('port')
ret = {'status': 'ACTIVE', 'id': str(uuid.uuid4()),
'mac_address': p.get('mac_address', 'fa:16:3e:b8:f5:fb'),
- 'port_security_enabled': p.get('port_security_enabled'),
'device_id': p.get('device_id', str(uuid.uuid4())),
- 'security_groups': p.get('security_groups', [])}
-
- fields = ['network_id', 'security_groups', 'admin_state_up']
- for field in fields:
- ret[field] = p.get(field)
+ 'admin_state_up': p.get('admin_state_up', True),
+ 'security_groups': p.get('security_groups', []),
+ 'network_id': p.get('network_id')}
network = self._fake_networks[p['network_id']]
- if not ret['port_security_enabled']:
+ if 'port_security_enabled' in p:
+ ret['port_security_enabled'] = p['port_security_enabled']
+ elif 'port_security_enabled' in network:
ret['port_security_enabled'] = network['port_security_enabled']
+
+ port_security = ret.get('port_security_enabled', True)
+ # port_security must be True if security groups are present
+ if not port_security and ret['security_groups']:
+ raise exception.SecurityGroupCannotBeApplied()
+
if network['subnets']:
ret['fixed_ips'] = [{'subnet_id': network['subnets'][0],
'ip_address': '10.0.0.1'}]
- if not ret['security_groups']:
+ if not ret['security_groups'] and (port_security is None or
+ port_security is True):
for security_group in self._fake_security_groups.values():
if security_group['name'] == 'default':
ret['security_groups'] = [security_group['id']]
diff --git a/nova/tests/api/openstack/compute/contrib/test_quotas.py b/nova/tests/api/openstack/compute/contrib/test_quotas.py
index c95c41614..4fb337294 100644
--- a/nova/tests/api/openstack/compute/contrib/test_quotas.py
+++ b/nova/tests/api/openstack/compute/contrib/test_quotas.py
@@ -19,7 +19,10 @@ from lxml import etree
import webob
from nova.api.openstack.compute.contrib import quotas
+from nova.api.openstack import extensions
from nova.api.openstack import wsgi
+from nova import context as context_maker
+from nova import quota
from nova import test
from nova.tests.api.openstack import fakes
@@ -37,7 +40,8 @@ class QuotaSetsTest(test.TestCase):
def setUp(self):
super(QuotaSetsTest, self).setUp()
- self.controller = quotas.QuotaSetsController()
+ self.ext_mgr = self.mox.CreateMock(extensions.ExtensionManager)
+ self.controller = quotas.QuotaSetsController(self.ext_mgr)
def test_format_quota_set(self):
raw_quota_set = {
@@ -201,6 +205,33 @@ class QuotaSetsTest(test.TestCase):
res_dict = self.controller.update(req, 'update_me', body)
self.assertEqual(res_dict, expected_resp)
+ def test_delete_quotas_when_extension_not_loaded(self):
+ self.ext_mgr.is_loaded('os-extended-quotas').AndReturn(False)
+ self.mox.ReplayAll()
+ req = fakes.HTTPRequest.blank('/v2/fake4/os-quota-sets/1234')
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.delete,
+ req, 1234)
+
+ def test_quotas_delete_as_unauthorized_user(self):
+ self.ext_mgr.is_loaded('os-extended-quotas').AndReturn(True)
+ self.mox.ReplayAll()
+ req = fakes.HTTPRequest.blank('/v2/fake4/os-quota-sets/1234')
+ self.assertRaises(webob.exc.HTTPForbidden, self.controller.delete,
+ req, 1234)
+
+ def test_quotas_delete_as_admin(self):
+ context = context_maker.get_admin_context()
+ self.req = fakes.HTTPRequest.blank('/v2/fake4/os-quota-sets/1234')
+ self.req.environ['nova.context'] = context
+ self.ext_mgr.is_loaded('os-extended-quotas').AndReturn(True)
+ self.mox.StubOutWithMock(quota.QUOTAS,
+ "destroy_all_by_project")
+ quota.QUOTAS.destroy_all_by_project(context, 1234)
+ self.mox.ReplayAll()
+ res = self.controller.delete(self.req, 1234)
+ self.mox.VerifyAll()
+ self.assertEqual(res.status_int, 202)
+
class QuotaXMLSerializerTest(test.TestCase):
def setUp(self):
diff --git a/nova/tests/api/openstack/compute/contrib/test_security_groups.py b/nova/tests/api/openstack/compute/contrib/test_security_groups.py
index b1a5b3fdf..f1433bd0a 100644
--- a/nova/tests/api/openstack/compute/contrib/test_security_groups.py
+++ b/nova/tests/api/openstack/compute/contrib/test_security_groups.py
@@ -273,7 +273,7 @@ class TestSecurityGroups(test.TestCase):
self.assertEqual(res_dict['security_group']['name'], name)
sg = security_group_template()
- self.assertRaises(exception.SecurityGroupLimitExceeded,
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
self.controller.create,
req, {'security_group': sg})
@@ -354,8 +354,8 @@ class TestSecurityGroups(test.TestCase):
self.stubs.Set(nova.db, 'instance_get_by_uuid',
return_instance)
- def return_security_groups(context, instance_id):
- self.assertEquals(instance_id, 1)
+ def return_security_groups(context, instance_uuid):
+ self.assertEquals(instance_uuid, FAKE_UUID1)
return [security_group_db(sg) for sg in groups]
self.stubs.Set(nova.db, 'security_group_get_by_instance',
@@ -408,6 +408,54 @@ class TestSecurityGroups(test.TestCase):
self.assertRaises(webob.exc.HTTPNotFound, self.controller.delete,
req, self.fake_id)
+ def test_update_security_group(self):
+ sg = security_group_template(id=2, rules=[])
+ sg_update = security_group_template(id=2, rules=[],
+ name='update_name', description='update_desc')
+
+ def return_security_group(context, group_id):
+ self.assertEquals(sg['id'], group_id)
+ return security_group_db(sg)
+
+ def return_update_security_group(context, group_id, values):
+ self.assertEquals(sg_update['id'], group_id)
+ self.assertEquals(sg_update['name'], values['name'])
+ self.assertEquals(sg_update['description'], values['description'])
+ return security_group_db(sg_update)
+
+ self.stubs.Set(nova.db, 'security_group_update',
+ return_update_security_group)
+ self.stubs.Set(nova.db, 'security_group_get',
+ return_security_group)
+
+ req = fakes.HTTPRequest.blank('/v2/fake/os-security-groups/2')
+ res_dict = self.controller.update(req, '2',
+ {'security_group': sg_update})
+
+ expected = {'security_group': sg_update}
+ self.assertEquals(res_dict, expected)
+
+ def test_update_security_group_name_to_default(self):
+ sg = security_group_template(id=2, rules=[], name='default')
+
+ def return_security_group(context, group_id):
+ self.assertEquals(sg['id'], group_id)
+ return security_group_db(sg)
+
+ self.stubs.Set(nova.db, 'security_group_get',
+ return_security_group)
+
+ req = fakes.HTTPRequest.blank('/v2/fake/os-security-groups/2')
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
+ req, '2', {'security_group': sg})
+
+ def test_update_default_security_group_fail(self):
+ sg = security_group_template()
+
+ req = fakes.HTTPRequest.blank('/v2/fake/os-security-groups/1')
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
+ req, '1', {'security_group': sg})
+
def test_delete_security_group_by_id(self):
sg = security_group_template(id=1, rules=[])
@@ -1091,7 +1139,7 @@ class TestSecurityGroupRules(test.TestCase):
'ip_protocol': 'tcp', 'from_port': '121', 'to_port': '121',
'parent_group_id': self.sg2['id'], 'group_id': self.sg1['id']
}
- self.assertRaises(exception.SecurityGroupLimitExceeded,
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
self.controller.create,
req, {'security_group_rule': rule})
diff --git a/nova/tests/api/openstack/compute/contrib/test_server_usage.py b/nova/tests/api/openstack/compute/contrib/test_server_usage.py
new file mode 100644
index 000000000..0c06a1738
--- /dev/null
+++ b/nova/tests/api/openstack/compute/contrib/test_server_usage.py
@@ -0,0 +1,131 @@
+# Copyright 2013 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import datetime
+
+from lxml import etree
+
+from nova.api.openstack.compute.contrib import server_usage
+from nova import compute
+from nova import exception
+from nova.openstack.common import jsonutils
+from nova.openstack.common import timeutils
+from nova import test
+from nova.tests.api.openstack import fakes
+
+UUID1 = '00000000-0000-0000-0000-000000000001'
+UUID2 = '00000000-0000-0000-0000-000000000002'
+UUID3 = '00000000-0000-0000-0000-000000000003'
+
+DATE1 = datetime.datetime(year=2013, month=4, day=5, hour=12)
+DATE2 = datetime.datetime(year=2013, month=4, day=5, hour=13)
+DATE3 = datetime.datetime(year=2013, month=4, day=5, hour=14)
+
+
+def fake_compute_get(*args, **kwargs):
+ return fakes.stub_instance(1, uuid=UUID3, launched_at=DATE1,
+ terminated_at=DATE2)
+
+
+def fake_compute_get_all(*args, **kwargs):
+ return [
+ fakes.stub_instance(2, uuid=UUID1, launched_at=DATE2,
+ terminated_at=DATE3),
+ fakes.stub_instance(3, uuid=UUID2, launched_at=DATE1,
+ terminated_at=DATE3),
+ ]
+
+
+class ServerUsageTest(test.TestCase):
+ content_type = 'application/json'
+ prefix = 'OS-SRV-USG:'
+
+ def setUp(self):
+ super(ServerUsageTest, self).setUp()
+ fakes.stub_out_nw_api(self.stubs)
+ self.stubs.Set(compute.api.API, 'get', fake_compute_get)
+ self.stubs.Set(compute.api.API, 'get_all', fake_compute_get_all)
+ self.flags(
+ osapi_compute_extension=[
+ 'nova.api.openstack.compute.contrib.select_extensions'],
+ osapi_compute_ext_list=['Server_usage'])
+
+ def _make_request(self, url):
+ req = fakes.HTTPRequest.blank(url)
+ req.accept = self.content_type
+ res = req.get_response(fakes.wsgi_app(init_only=('servers',)))
+ return res
+
+ def _get_server(self, body):
+ return jsonutils.loads(body).get('server')
+
+ def _get_servers(self, body):
+ return jsonutils.loads(body).get('servers')
+
+ def assertServerUsage(self, server, launched_at, terminated_at):
+ resp_launched_at = timeutils.parse_isotime(
+ server.get('%slaunched_at' % self.prefix))
+ self.assertEqual(timeutils.normalize_time(resp_launched_at),
+ launched_at)
+ resp_terminated_at = timeutils.parse_isotime(
+ server.get('%sterminated_at' % self.prefix))
+ self.assertEqual(timeutils.normalize_time(resp_terminated_at),
+ terminated_at)
+
+ def test_show(self):
+ url = '/v2/fake/servers/%s' % UUID3
+ res = self._make_request(url)
+
+ self.assertEqual(res.status_int, 200)
+ now = datetime.datetime.utcnow()
+ timeutils.set_time_override(now)
+ self.assertServerUsage(self._get_server(res.body),
+ launched_at=DATE1,
+ terminated_at=DATE2)
+
+ def test_detail(self):
+ url = '/v2/fake/servers/detail'
+ res = self._make_request(url)
+
+ self.assertEqual(res.status_int, 200)
+ servers = self._get_servers(res.body)
+ self.assertServerUsage(servers[0],
+ launched_at=DATE2,
+ terminated_at=DATE3)
+ self.assertServerUsage(servers[1],
+ launched_at=DATE1,
+ terminated_at=DATE3)
+
+ def test_no_instance_passthrough_404(self):
+
+ def fake_compute_get(*args, **kwargs):
+ raise exception.InstanceNotFound(instance_id='fake')
+
+ self.stubs.Set(compute.api.API, 'get', fake_compute_get)
+ url = '/v2/fake/servers/70f6db34-de8d-4fbd-aafb-4065bdfa6115'
+ res = self._make_request(url)
+
+ self.assertEqual(res.status_int, 404)
+
+
+class ServerUsageXmlTest(ServerUsageTest):
+ content_type = 'application/xml'
+ prefix = '{%s}' % server_usage.Server_usage.namespace
+
+ def _get_server(self, body):
+ return etree.XML(body)
+
+ def _get_servers(self, body):
+ return etree.XML(body).getchildren()
diff --git a/nova/tests/api/openstack/compute/contrib/test_services.py b/nova/tests/api/openstack/compute/contrib/test_services.py
index 57dd056ee..c9d0c76e5 100644
--- a/nova/tests/api/openstack/compute/contrib/test_services.py
+++ b/nova/tests/api/openstack/compute/contrib/test_services.py
@@ -14,13 +14,16 @@
import datetime
+import webob.exc
from nova.api.openstack.compute.contrib import services
+from nova.api.openstack import extensions
from nova import availability_zones
from nova import context
from nova import db
from nova import exception
from nova.openstack.common import timeutils
+from nova.servicegroup.drivers import db as db_driver
from nova import test
from nova.tests.api.openstack import fakes
@@ -32,28 +35,32 @@ fake_services_list = [
'disabled': True,
'topic': 'scheduler',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 2),
- 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 27)},
+ 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 27),
+ 'disabled_reason': 'test1'},
{'binary': 'nova-compute',
'host': 'host1',
'id': 2,
'disabled': True,
'topic': 'compute',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5),
- 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 27)},
+ 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 27),
+ 'disabled_reason': 'test2'},
{'binary': 'nova-scheduler',
'host': 'host2',
'id': 3,
'disabled': False,
'topic': 'scheduler',
'updated_at': datetime.datetime(2012, 9, 19, 6, 55, 34),
- 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 28)},
+ 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 28),
+ 'disabled_reason': ''},
{'binary': 'nova-compute',
'host': 'host2',
'id': 4,
'disabled': True,
'topic': 'compute',
'updated_at': datetime.datetime(2012, 9, 18, 8, 3, 38),
- 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 28)},
+ 'created_at': datetime.datetime(2012, 9, 18, 2, 46, 28),
+ 'disabled_reason': 'test4'},
]
@@ -105,9 +112,6 @@ def fake_service_update(context, service_id, values):
service = fake_service_get_by_id(service_id)
if service is None:
raise exception.ServiceNotFound(service_id=service_id)
- else:
- {'host': 'host1', 'service': 'nova-compute',
- 'disabled': values['disabled']}
def fake_utcnow():
@@ -120,8 +124,9 @@ class ServicesTest(test.TestCase):
super(ServicesTest, self).setUp()
self.context = context.get_admin_context()
- self.controller = services.ServiceController()
-
+ self.ext_mgr = extensions.ExtensionManager()
+ self.ext_mgr.extensions = {}
+ self.controller = services.ServiceController(self.ext_mgr)
self.stubs.Set(self.controller.host_api, "service_get_all",
fake_host_api_service_get_all)
self.stubs.Set(timeutils, "utcnow", fake_utcnow)
@@ -133,21 +138,30 @@ class ServicesTest(test.TestCase):
req = FakeRequest()
res_dict = self.controller.index(req)
- response = {'services': [{'binary': 'nova-scheduler',
- 'host': 'host1', 'zone': 'internal',
- 'status': 'disabled', 'state': 'up',
+ response = {'services': [
+ {'binary': 'nova-scheduler',
+ 'host': 'host1',
+ 'zone': 'internal',
+ 'status': 'disabled',
+ 'state': 'up',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 2)},
{'binary': 'nova-compute',
- 'host': 'host1', 'zone': 'nova',
- 'status': 'disabled', 'state': 'up',
+ 'host': 'host1',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'up',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5)},
- {'binary': 'nova-scheduler', 'host': 'host2',
+ {'binary': 'nova-scheduler',
+ 'host': 'host2',
'zone': 'internal',
- 'status': 'enabled', 'state': 'down',
+ 'status': 'enabled',
+ 'state': 'down',
'updated_at': datetime.datetime(2012, 9, 19, 6, 55, 34)},
- {'binary': 'nova-compute', 'host': 'host2',
+ {'binary': 'nova-compute',
+ 'host': 'host2',
'zone': 'nova',
- 'status': 'disabled', 'state': 'down',
+ 'status': 'disabled',
+ 'state': 'down',
'updated_at': datetime.datetime(2012, 9, 18, 8, 3, 38)}]}
self.assertEqual(res_dict, response)
@@ -155,13 +169,18 @@ class ServicesTest(test.TestCase):
req = FakeRequestWithHost()
res_dict = self.controller.index(req)
- response = {'services': [{'binary': 'nova-scheduler', 'host': 'host1',
+ response = {'services': [
+ {'binary': 'nova-scheduler',
+ 'host': 'host1',
'zone': 'internal',
- 'status': 'disabled', 'state': 'up',
+ 'status': 'disabled',
+ 'state': 'up',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 2)},
- {'binary': 'nova-compute', 'host': 'host1',
+ {'binary': 'nova-compute',
+ 'host': 'host1',
'zone': 'nova',
- 'status': 'disabled', 'state': 'up',
+ 'status': 'disabled',
+ 'state': 'up',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5)}]}
self.assertEqual(res_dict, response)
@@ -169,13 +188,18 @@ class ServicesTest(test.TestCase):
req = FakeRequestWithService()
res_dict = self.controller.index(req)
- response = {'services': [{'binary': 'nova-compute', 'host': 'host1',
+ response = {'services': [
+ {'binary': 'nova-compute',
+ 'host': 'host1',
'zone': 'nova',
- 'status': 'disabled', 'state': 'up',
+ 'status': 'disabled',
+ 'state': 'up',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5)},
- {'binary': 'nova-compute', 'host': 'host2',
+ {'binary': 'nova-compute',
+ 'host': 'host2',
'zone': 'nova',
- 'status': 'disabled', 'state': 'down',
+ 'status': 'disabled',
+ 'state': 'down',
'updated_at': datetime.datetime(2012, 9, 18, 8, 3, 38)}]}
self.assertEqual(res_dict, response)
@@ -183,18 +207,135 @@ class ServicesTest(test.TestCase):
req = FakeRequestWithHostService()
res_dict = self.controller.index(req)
- response = {'services': [{'binary': 'nova-compute', 'host': 'host1',
+ response = {'services': [
+ {'binary': 'nova-compute',
+ 'host': 'host1',
'zone': 'nova',
- 'status': 'disabled', 'state': 'up',
+ 'status': 'disabled',
+ 'state': 'up',
'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5)}]}
self.assertEqual(res_dict, response)
+ def test_services_detail(self):
+ self.ext_mgr.extensions['os-extended-services'] = True
+ self.controller = services.ServiceController(self.ext_mgr)
+ self.stubs.Set(self.controller.host_api, "service_get_all",
+ fake_host_api_service_get_all)
+ req = FakeRequest()
+ res_dict = self.controller.index(req)
+ response = {'services': [
+ {'binary': 'nova-scheduler',
+ 'host': 'host1',
+ 'zone': 'internal',
+ 'status': 'disabled',
+ 'state': 'up',
+ 'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 2),
+ 'disabled_reason': 'test1'},
+ {'binary': 'nova-compute',
+ 'host': 'host1',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'up',
+ 'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5),
+ 'disabled_reason': 'test2'},
+ {'binary': 'nova-scheduler',
+ 'host': 'host2',
+ 'zone': 'internal',
+ 'status': 'enabled',
+ 'state': 'down',
+ 'updated_at': datetime.datetime(2012, 9, 19, 6, 55, 34),
+ 'disabled_reason': ''},
+ {'binary': 'nova-compute',
+ 'host': 'host2',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'down',
+ 'updated_at': datetime.datetime(2012, 9, 18, 8, 3, 38),
+ 'disabled_reason': 'test4'}]}
+ self.assertEqual(res_dict, response)
+
+ def test_service_detail_with_host(self):
+ self.ext_mgr.extensions['os-extended-services'] = True
+ self.controller = services.ServiceController(self.ext_mgr)
+ self.stubs.Set(self.controller.host_api, "service_get_all",
+ fake_host_api_service_get_all)
+ req = FakeRequestWithHost()
+ res_dict = self.controller.index(req)
+ response = {'services': [
+ {'binary': 'nova-scheduler',
+ 'host': 'host1',
+ 'zone': 'internal',
+ 'status': 'disabled',
+ 'state': 'up',
+ 'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 2),
+ 'disabled_reason': 'test1'},
+ {'binary': 'nova-compute',
+ 'host': 'host1',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'up',
+ 'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5),
+ 'disabled_reason': 'test2'}]}
+ self.assertEqual(res_dict, response)
+
+ def test_service_detail_with_service(self):
+ self.ext_mgr.extensions['os-extended-services'] = True
+ self.controller = services.ServiceController(self.ext_mgr)
+ self.stubs.Set(self.controller.host_api, "service_get_all",
+ fake_host_api_service_get_all)
+ req = FakeRequestWithService()
+ res_dict = self.controller.index(req)
+ response = {'services': [
+ {'binary': 'nova-compute',
+ 'host': 'host1',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'up',
+ 'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5),
+ 'disabled_reason': 'test2'},
+ {'binary': 'nova-compute',
+ 'host': 'host2',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'down',
+ 'updated_at': datetime.datetime(2012, 9, 18, 8, 3, 38),
+ 'disabled_reason': 'test4'}]}
+ self.assertEqual(res_dict, response)
+
+ def test_service_detail_with_host_service(self):
+ self.ext_mgr.extensions['os-extended-services'] = True
+ self.controller = services.ServiceController(self.ext_mgr)
+ self.stubs.Set(self.controller.host_api, "service_get_all",
+ fake_host_api_service_get_all)
+ req = FakeRequestWithHostService()
+ res_dict = self.controller.index(req)
+ response = {'services': [
+ {'binary': 'nova-compute',
+ 'host': 'host1',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'up',
+ 'updated_at': datetime.datetime(2012, 10, 29, 13, 42, 5),
+ 'disabled_reason': 'test2'}]}
+ self.assertEqual(res_dict, response)
+
def test_services_enable(self):
body = {'host': 'host1', 'binary': 'nova-compute'}
req = fakes.HTTPRequest.blank('/v2/fake/os-services/enable')
res_dict = self.controller.update(req, "enable", body)
self.assertEqual(res_dict['service']['status'], 'enabled')
+ self.assertFalse('disabled_reason' in res_dict['service'])
+
+ # This test is just to verify that the servicegroup API gets used when
+ # calling this API.
+ def test_services_with_exception(self):
+ def dummy_is_up(self, dummy):
+ raise KeyError()
+
+ self.stubs.Set(db_driver.DbDriver, 'is_up', dummy_is_up)
+ req = FakeRequestWithHostService()
+ self.assertRaises(KeyError, self.controller.index, req)
def test_services_disable(self):
req = fakes.HTTPRequest.blank('/v2/fake/os-services/disable')
@@ -202,3 +343,37 @@ class ServicesTest(test.TestCase):
res_dict = self.controller.update(req, "disable", body)
self.assertEqual(res_dict['service']['status'], 'disabled')
+ self.assertFalse('disabled_reason' in res_dict['service'])
+
+ def test_services_disable_log_reason(self):
+ self.ext_mgr.extensions['os-extended-services'] = True
+ self.controller = services.ServiceController(self.ext_mgr)
+ req = \
+ fakes.HTTPRequest.blank('v2/fakes/os-services/disable-log-reason')
+ body = {'host': 'host1',
+ 'binary': 'nova-compute',
+ 'disabled_reason': 'test-reason',
+ }
+ res_dict = self.controller.update(req, "disable-log-reason", body)
+
+ self.assertEqual(res_dict['service']['status'], 'disabled')
+ self.assertEqual(res_dict['service']['disabled_reason'], 'test-reason')
+
+ def test_mandatory_reason_field(self):
+ self.ext_mgr.extensions['os-extended-services'] = True
+ self.controller = services.ServiceController(self.ext_mgr)
+ req = \
+ fakes.HTTPRequest.blank('v2/fakes/os-services/disable-log-reason')
+ body = {'host': 'host1',
+ 'binary': 'nova-compute',
+ }
+ self.assertRaises(webob.exc.HTTPUnprocessableEntity,
+ self.controller.update, req, "disable-log-reason", body)
+
+ def test_invalid_reason_field(self):
+ reason = ' '
+ self.assertFalse(self.controller._is_valid_as_reason(reason))
+ reason = 'a' * 256
+ self.assertFalse(self.controller._is_valid_as_reason(reason))
+ reason = 'it\'s a valid reason.'
+ self.assertTrue(self.controller._is_valid_as_reason(reason))
diff --git a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py
index 004a6716e..8c8242505 100644
--- a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py
+++ b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py
@@ -59,7 +59,7 @@ FAKE_INST_TYPE = {'id': 1,
def get_fake_db_instance(start, end, instance_id, tenant_id):
sys_meta = utils.dict_to_metadata(
- flavors.save_instance_type_info({}, FAKE_INST_TYPE))
+ flavors.save_flavor_info({}, FAKE_INST_TYPE))
return {'id': instance_id,
'uuid': '00000000-0000-0000-0000-00000000000000%02d' % instance_id,
'image_ref': '1',
@@ -415,7 +415,7 @@ class SimpleTenantUsageControllerTest(test.TestCase):
class FakeComputeAPI:
def get_instance_type(self, context, flavor_type):
if flavor_type == 1:
- return flavors.get_default_instance_type()
+ return flavors.get_default_flavor()
else:
raise exception.InstanceTypeNotFound(flavor_type)
@@ -429,11 +429,11 @@ class SimpleTenantUsageControllerTest(test.TestCase):
instance_type_id=1,
vm_state='deleted',
deleted=0)
- basetype = flavors.get_default_instance_type()
+ basetype = flavors.get_default_flavor()
sys_meta = utils.dict_to_metadata(
- flavors.save_instance_type_info({}, basetype))
+ flavors.save_flavor_info({}, basetype))
self.baseinst['system_metadata'] = sys_meta
- self.basetype = flavors.extract_instance_type(self.baseinst)
+ self.basetype = flavors.extract_flavor(self.baseinst)
def test_get_flavor_from_sys_meta(self):
# Non-deleted instances get their type information from their
@@ -458,7 +458,7 @@ class SimpleTenantUsageControllerTest(test.TestCase):
deleted=1)
flavor = self.controller._get_flavor(self.context, self.compute_api,
inst_without_sys_meta, {})
- self.assertEqual(flavor, flavors.get_default_instance_type())
+ self.assertEqual(flavor, flavors.get_default_flavor())
def test_get_flavor_from_deleted_with_id_of_deleted(self):
# Verify the legacy behavior of instance_type_id pointing to a
diff --git a/nova/tests/api/openstack/compute/contrib/test_used_limits.py b/nova/tests/api/openstack/compute/contrib/test_used_limits.py
index ebe3e852d..4f50916a7 100644
--- a/nova/tests/api/openstack/compute/contrib/test_used_limits.py
+++ b/nova/tests/api/openstack/compute/contrib/test_used_limits.py
@@ -17,8 +17,10 @@
from nova.api.openstack.compute.contrib import used_limits
from nova.api.openstack.compute import limits
+from nova.api.openstack import extensions
from nova.api.openstack import wsgi
import nova.context
+from nova import exception
from nova import quota
from nova import test
@@ -31,13 +33,15 @@ class FakeRequest(object):
class UsedLimitsTestCase(test.TestCase):
-
def setUp(self):
"""Run before each test."""
super(UsedLimitsTestCase, self).setUp()
- self.controller = used_limits.UsedLimitsController()
+ self.ext_mgr = self.mox.CreateMock(extensions.ExtensionManager)
+ self.controller = used_limits.UsedLimitsController(self.ext_mgr)
self.fake_context = nova.context.RequestContext('fake', 'fake')
+ self.mox.StubOutWithMock(used_limits, 'authorize_for_admin')
+ self.authorize_for_admin = used_limits.authorize_for_admin
def _do_test_used_limits(self, reserved):
fake_req = FakeRequest(self.fake_context, reserved=reserved)
@@ -63,8 +67,11 @@ class UsedLimitsTestCase(test.TestCase):
def stub_get_project_quotas(context, project_id, usages=True):
return limits
+
self.stubs.Set(quota.QUOTAS, "get_project_quotas",
stub_get_project_quotas)
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(False)
+ self.mox.ReplayAll()
self.controller.index(fake_req, res)
abs_limits = res.obj['limits']['absolute']
@@ -79,6 +86,100 @@ class UsedLimitsTestCase(test.TestCase):
def test_used_limits_with_reserved(self):
self._do_test_used_limits(True)
+ def test_admin_can_fetch_limits_for_a_given_tenant_id(self):
+ project_id = "123456"
+ user_id = "A1234"
+ tenant_id = 'abcd'
+ self.fake_context.project_id = project_id
+ self.fake_context.user_id = user_id
+ obj = {
+ "limits": {
+ "rate": [],
+ "absolute": {},
+ },
+ }
+ target = {
+ "project_id": tenant_id,
+ "user_id": user_id
+ }
+ fake_req = FakeRequest(self.fake_context)
+ fake_req.GET = {'tenant_id': tenant_id}
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(True)
+ self.authorize_for_admin(self.fake_context, target=target)
+ self.mox.StubOutWithMock(quota.QUOTAS, 'get_project_quotas')
+ quota.QUOTAS.get_project_quotas(self.fake_context, '%s' % tenant_id,
+ usages=True).AndReturn({})
+ self.mox.ReplayAll()
+ res = wsgi.ResponseObject(obj)
+ self.controller.index(fake_req, res)
+
+ def test_admin_can_fetch_used_limits_for_own_project(self):
+ project_id = "123456"
+ user_id = "A1234"
+ self.fake_context.project_id = project_id
+ self.fake_context.user_id = user_id
+ obj = {
+ "limits": {
+ "rate": [],
+ "absolute": {},
+ },
+ }
+ fake_req = FakeRequest(self.fake_context)
+ fake_req.GET = {}
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(True)
+ self.mox.StubOutWithMock(extensions, 'extension_authorizer')
+ self.mox.StubOutWithMock(quota.QUOTAS, 'get_project_quotas')
+ quota.QUOTAS.get_project_quotas(self.fake_context, '%s' % project_id,
+ usages=True).AndReturn({})
+ self.mox.ReplayAll()
+ res = wsgi.ResponseObject(obj)
+ self.controller.index(fake_req, res)
+
+ def test_non_admin_cannot_fetch_used_limits_for_any_other_project(self):
+ project_id = "123456"
+ user_id = "A1234"
+ tenant_id = "abcd"
+ self.fake_context.project_id = project_id
+ self.fake_context.user_id = user_id
+ obj = {
+ "limits": {
+ "rate": [],
+ "absolute": {},
+ },
+ }
+ target = {
+ "project_id": tenant_id,
+ "user_id": user_id
+ }
+ fake_req = FakeRequest(self.fake_context)
+ fake_req.GET = {'tenant_id': tenant_id}
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(True)
+ self.authorize_for_admin(self.fake_context, target=target). \
+ AndRaise(exception.PolicyNotAuthorized(
+ action="compute_extension:used_limits_for_admin"))
+ self.mox.ReplayAll()
+ res = wsgi.ResponseObject(obj)
+ self.assertRaises(exception.PolicyNotAuthorized, self.controller.index,
+ fake_req, res)
+
+ def test_used_limits_fetched_for_context_project_id(self):
+ project_id = "123456"
+ self.fake_context.project_id = project_id
+ obj = {
+ "limits": {
+ "rate": [],
+ "absolute": {},
+ },
+ }
+ fake_req = FakeRequest(self.fake_context)
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(False)
+ self.mox.StubOutWithMock(quota.QUOTAS, 'get_project_quotas')
+ quota.QUOTAS.get_project_quotas(self.fake_context, project_id,
+ usages=True).AndReturn({})
+ self.mox.ReplayAll()
+ res = wsgi.ResponseObject(obj)
+ self.controller.index(fake_req, res)
+
def test_used_ram_added(self):
fake_req = FakeRequest(self.fake_context)
obj = {
@@ -86,15 +187,19 @@ class UsedLimitsTestCase(test.TestCase):
"rate": [],
"absolute": {
"maxTotalRAMSize": 512,
- },
+ },
},
}
res = wsgi.ResponseObject(obj)
def stub_get_project_quotas(context, project_id, usages=True):
return {'ram': {'limit': 512, 'in_use': 256}}
+
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(False)
self.stubs.Set(quota.QUOTAS, "get_project_quotas",
stub_get_project_quotas)
+ self.mox.ReplayAll()
+
self.controller.index(fake_req, res)
abs_limits = res.obj['limits']['absolute']
self.assertTrue('totalRAMUsed' in abs_limits)
@@ -112,8 +217,12 @@ class UsedLimitsTestCase(test.TestCase):
def stub_get_project_quotas(context, project_id, usages=True):
return {}
+
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(False)
self.stubs.Set(quota.QUOTAS, "get_project_quotas",
stub_get_project_quotas)
+ self.mox.ReplayAll()
+
self.controller.index(fake_req, res)
abs_limits = res.obj['limits']['absolute']
self.assertFalse('totalRAMUsed' in abs_limits)
@@ -131,8 +240,12 @@ class UsedLimitsTestCase(test.TestCase):
def stub_get_project_quotas(context, project_id, usages=True):
return {}
+
+ self.ext_mgr.is_loaded('os-used-limits-for-admin').AndReturn(False)
self.stubs.Set(quota.QUOTAS, "get_project_quotas",
stub_get_project_quotas)
+ self.mox.ReplayAll()
+
self.controller.index(fake_req, res)
response = res.serialize(None, 'xml')
self.assertTrue(used_limits.XMLNS in response.body)
diff --git a/nova/tests/api/openstack/compute/contrib/test_volumes.py b/nova/tests/api/openstack/compute/contrib/test_volumes.py
index 5e331f4f4..bdca7fdef 100644
--- a/nova/tests/api/openstack/compute/contrib/test_volumes.py
+++ b/nova/tests/api/openstack/compute/contrib/test_volumes.py
@@ -47,7 +47,7 @@ def fake_compute_api_create(cls, context, instance_type, image_href, **kwargs):
global _block_device_mapping_seen
_block_device_mapping_seen = kwargs.get('block_device_mapping')
- inst_type = flavors.get_instance_type_by_flavor_id(2)
+ inst_type = flavors.get_flavor_by_flavor_id(2)
resv_id = None
return ([{'id': 1,
'display_name': 'test_server',
diff --git a/nova/tests/test_plugin_api_extensions.py b/nova/tests/api/openstack/compute/extensions/test_plugin_api_extensions.py
index 3aac638c6..3aac638c6 100644
--- a/nova/tests/test_plugin_api_extensions.py
+++ b/nova/tests/api/openstack/compute/extensions/test_plugin_api_extensions.py
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_consoles.py b/nova/tests/api/openstack/compute/plugins/v3/test_consoles.py
new file mode 100644
index 000000000..2f84af434
--- /dev/null
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_consoles.py
@@ -0,0 +1,295 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2010-2011 OpenStack Foundation
+# Copyright 2011 Piston Cloud Computing, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import datetime
+import uuid as stdlib_uuid
+
+from lxml import etree
+import webob
+
+from nova.api.openstack.compute.plugins.v3 import consoles
+from nova.compute import vm_states
+from nova import console
+from nova import db
+from nova import exception
+from nova.openstack.common import timeutils
+from nova import test
+from nova.tests.api.openstack import fakes
+from nova.tests import matchers
+
+
+FAKE_UUID = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
+
+
+class FakeInstanceDB(object):
+
+ def __init__(self):
+ self.instances_by_id = {}
+ self.ids_by_uuid = {}
+ self.max_id = 0
+
+ def return_server_by_id(self, context, id):
+ if id not in self.instances_by_id:
+ self._add_server(id=id)
+ return dict(self.instances_by_id[id])
+
+ def return_server_by_uuid(self, context, uuid):
+ if uuid not in self.ids_by_uuid:
+ self._add_server(uuid=uuid)
+ return dict(self.instances_by_id[self.ids_by_uuid[uuid]])
+
+ def _add_server(self, id=None, uuid=None):
+ if id is None:
+ id = self.max_id + 1
+ if uuid is None:
+ uuid = str(stdlib_uuid.uuid4())
+ instance = stub_instance(id, uuid=uuid)
+ self.instances_by_id[id] = instance
+ self.ids_by_uuid[uuid] = id
+ if id > self.max_id:
+ self.max_id = id
+
+
+def stub_instance(id, user_id='fake', project_id='fake', host=None,
+ vm_state=None, task_state=None,
+ reservation_id="", uuid=FAKE_UUID, image_ref="10",
+ flavor_id="1", name=None, key_name='',
+ access_ipv4=None, access_ipv6=None, progress=0):
+
+ if host is not None:
+ host = str(host)
+
+ if key_name:
+ key_data = 'FAKE'
+ else:
+ key_data = ''
+
+ # ReservationID isn't sent back, hack it in there.
+ server_name = name or "server%s" % id
+ if reservation_id != "":
+ server_name = "reservation_%s" % (reservation_id, )
+
+ instance = {
+ "id": int(id),
+ "created_at": datetime.datetime(2010, 10, 10, 12, 0, 0),
+ "updated_at": datetime.datetime(2010, 11, 11, 11, 0, 0),
+ "admin_pass": "",
+ "user_id": user_id,
+ "project_id": project_id,
+ "image_ref": image_ref,
+ "kernel_id": "",
+ "ramdisk_id": "",
+ "launch_index": 0,
+ "key_name": key_name,
+ "key_data": key_data,
+ "vm_state": vm_state or vm_states.BUILDING,
+ "task_state": task_state,
+ "memory_mb": 0,
+ "vcpus": 0,
+ "root_gb": 0,
+ "hostname": "",
+ "host": host,
+ "instance_type": {},
+ "user_data": "",
+ "reservation_id": reservation_id,
+ "mac_address": "",
+ "scheduled_at": timeutils.utcnow(),
+ "launched_at": timeutils.utcnow(),
+ "terminated_at": timeutils.utcnow(),
+ "availability_zone": "",
+ "display_name": server_name,
+ "display_description": "",
+ "locked": False,
+ "metadata": [],
+ "access_ip_v4": access_ipv4,
+ "access_ip_v6": access_ipv6,
+ "uuid": uuid,
+ "progress": progress}
+
+ return instance
+
+
+class ConsolesControllerTest(test.TestCase):
+ def setUp(self):
+ super(ConsolesControllerTest, self).setUp()
+ self.flags(verbose=True)
+ self.instance_db = FakeInstanceDB()
+ self.stubs.Set(db, 'instance_get',
+ self.instance_db.return_server_by_id)
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ self.instance_db.return_server_by_uuid)
+ self.uuid = str(stdlib_uuid.uuid4())
+ self.url = '/v3/fake/servers/%s/consoles' % self.uuid
+ self.controller = consoles.ConsolesController()
+
+ def test_create_console(self):
+ def fake_create_console(cons_self, context, instance_id):
+ self.assertEqual(instance_id, self.uuid)
+ return {}
+ self.stubs.Set(console.api.API, 'create_console', fake_create_console)
+
+ req = fakes.HTTPRequestV3.blank(self.url)
+ self.controller.create(req, self.uuid)
+
+ def test_show_console(self):
+ def fake_get_console(cons_self, context, instance_id, console_id):
+ self.assertEqual(instance_id, self.uuid)
+ self.assertEqual(console_id, 20)
+ pool = dict(console_type='fake_type',
+ public_hostname='fake_hostname')
+ return dict(id=console_id, password='fake_password',
+ port='fake_port', pool=pool, instance_name='inst-0001')
+
+ expected = {'console': {'id': 20,
+ 'port': 'fake_port',
+ 'host': 'fake_hostname',
+ 'password': 'fake_password',
+ 'instance_name': 'inst-0001',
+ 'console_type': 'fake_type'}}
+
+ self.stubs.Set(console.api.API, 'get_console', fake_get_console)
+
+ req = fakes.HTTPRequestV3.blank(self.url + '/20')
+ res_dict = self.controller.show(req, self.uuid, '20')
+ self.assertThat(res_dict, matchers.DictMatches(expected))
+
+ def test_show_console_unknown_console(self):
+ def fake_get_console(cons_self, context, instance_id, console_id):
+ raise exception.ConsoleNotFound(console_id=console_id)
+
+ self.stubs.Set(console.api.API, 'get_console', fake_get_console)
+
+ req = fakes.HTTPRequestV3.blank(self.url + '/20')
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.show,
+ req, self.uuid, '20')
+
+ def test_show_console_unknown_instance(self):
+ def fake_get_console(cons_self, context, instance_id, console_id):
+ raise exception.InstanceNotFound(instance_id=instance_id)
+
+ self.stubs.Set(console.api.API, 'get_console', fake_get_console)
+
+ req = fakes.HTTPRequestV3.blank(self.url + '/20')
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.show,
+ req, self.uuid, '20')
+
+ def test_list_consoles(self):
+ def fake_get_consoles(cons_self, context, instance_id):
+ self.assertEqual(instance_id, self.uuid)
+
+ pool1 = dict(console_type='fake_type',
+ public_hostname='fake_hostname')
+ cons1 = dict(id=10, password='fake_password',
+ port='fake_port', pool=pool1)
+ pool2 = dict(console_type='fake_type2',
+ public_hostname='fake_hostname2')
+ cons2 = dict(id=11, password='fake_password2',
+ port='fake_port2', pool=pool2)
+ return [cons1, cons2]
+
+ expected = {'consoles':
+ [{'console': {'id': 10, 'console_type': 'fake_type'}},
+ {'console': {'id': 11, 'console_type': 'fake_type2'}}]}
+
+ self.stubs.Set(console.api.API, 'get_consoles', fake_get_consoles)
+
+ req = fakes.HTTPRequestV3.blank(self.url)
+ res_dict = self.controller.index(req, self.uuid)
+ self.assertThat(res_dict, matchers.DictMatches(expected))
+
+ def test_delete_console(self):
+ def fake_get_console(cons_self, context, instance_id, console_id):
+ self.assertEqual(instance_id, self.uuid)
+ self.assertEqual(console_id, 20)
+ pool = dict(console_type='fake_type',
+ public_hostname='fake_hostname')
+ return dict(id=console_id, password='fake_password',
+ port='fake_port', pool=pool)
+
+ def fake_delete_console(cons_self, context, instance_id, console_id):
+ self.assertEqual(instance_id, self.uuid)
+ self.assertEqual(console_id, 20)
+
+ self.stubs.Set(console.api.API, 'get_console', fake_get_console)
+ self.stubs.Set(console.api.API, 'delete_console', fake_delete_console)
+
+ req = fakes.HTTPRequestV3.blank(self.url + '/20')
+ self.controller.delete(req, self.uuid, '20')
+
+ def test_delete_console_unknown_console(self):
+ def fake_delete_console(cons_self, context, instance_id, console_id):
+ raise exception.ConsoleNotFound(console_id=console_id)
+
+ self.stubs.Set(console.api.API, 'delete_console', fake_delete_console)
+
+ req = fakes.HTTPRequestV3.blank(self.url + '/20')
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.delete,
+ req, self.uuid, '20')
+
+ def test_delete_console_unknown_instance(self):
+ def fake_delete_console(cons_self, context, instance_id, console_id):
+ raise exception.InstanceNotFound(instance_id=instance_id)
+
+ self.stubs.Set(console.api.API, 'delete_console', fake_delete_console)
+
+ req = fakes.HTTPRequestV3.blank(self.url + '/20')
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.delete,
+ req, self.uuid, '20')
+
+
+class TestConsolesXMLSerializer(test.TestCase):
+ def test_show(self):
+ fixture = {'console': {'id': 20,
+ 'password': 'fake_password',
+ 'port': 'fake_port',
+ 'host': 'fake_hostname',
+ 'console_type': 'fake_type'}}
+
+ output = consoles.ConsoleTemplate().serialize(fixture)
+ res_tree = etree.XML(output)
+
+ self.assertEqual(res_tree.tag, 'console')
+ self.assertEqual(res_tree.xpath('id')[0].text, '20')
+ self.assertEqual(res_tree.xpath('port')[0].text, 'fake_port')
+ self.assertEqual(res_tree.xpath('host')[0].text, 'fake_hostname')
+ self.assertEqual(res_tree.xpath('password')[0].text, 'fake_password')
+ self.assertEqual(res_tree.xpath('console_type')[0].text, 'fake_type')
+
+ def test_index(self):
+ fixture = {'consoles': [{'console': {'id': 10,
+ 'console_type': 'fake_type'}},
+ {'console': {'id': 11,
+ 'console_type': 'fake_type2'}}]}
+
+ output = consoles.ConsolesTemplate().serialize(fixture)
+ res_tree = etree.XML(output)
+
+ self.assertEqual(res_tree.tag, 'consoles')
+ self.assertEqual(len(res_tree), 2)
+ self.assertEqual(res_tree[0].tag, 'console')
+ self.assertEqual(res_tree[1].tag, 'console')
+ self.assertEqual(len(res_tree[0]), 1)
+ self.assertEqual(res_tree[0][0].tag, 'console')
+ self.assertEqual(len(res_tree[1]), 1)
+ self.assertEqual(res_tree[1][0].tag, 'console')
+ self.assertEqual(res_tree[0][0].xpath('id')[0].text, '10')
+ self.assertEqual(res_tree[1][0].xpath('id')[0].text, '11')
+ self.assertEqual(res_tree[0][0].xpath('console_type')[0].text,
+ 'fake_type')
+ self.assertEqual(res_tree[1][0].xpath('console_type')[0].text,
+ 'fake_type2')
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_keypairs.py b/nova/tests/api/openstack/compute/plugins/v3/test_keypairs.py
new file mode 100644
index 000000000..bb74fdafc
--- /dev/null
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_keypairs.py
@@ -0,0 +1,405 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2011 Eldar Nugaev
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from lxml import etree
+import webob
+
+from nova.api.openstack.compute.plugins.v3 import keypairs
+from nova.api.openstack import wsgi
+from nova import db
+from nova import exception
+from nova.openstack.common import jsonutils
+from nova import quota
+from nova import test
+from nova.tests.api.openstack import fakes
+
+
+QUOTAS = quota.QUOTAS
+
+
+def fake_keypair(name):
+ return {'public_key': 'FAKE_KEY',
+ 'fingerprint': 'FAKE_FINGERPRINT',
+ 'name': name}
+
+
+def db_key_pair_get_all_by_user(self, user_id):
+ return [fake_keypair('FAKE')]
+
+
+def db_key_pair_create(self, keypair):
+ return keypair
+
+
+def db_key_pair_destroy(context, user_id, name):
+ if not (user_id and name):
+ raise Exception()
+
+
+def db_key_pair_create_duplicate(context, keypair):
+ raise exception.KeyPairExists(key_name=keypair.get('name', ''))
+
+
+class KeypairsTest(test.TestCase):
+
+ def setUp(self):
+ super(KeypairsTest, self).setUp()
+ self.Controller = keypairs.Controller()
+ fakes.stub_out_networking(self.stubs)
+ fakes.stub_out_rate_limiting(self.stubs)
+
+ self.stubs.Set(db, "key_pair_get_all_by_user",
+ db_key_pair_get_all_by_user)
+ self.stubs.Set(db, "key_pair_create",
+ db_key_pair_create)
+ self.stubs.Set(db, "key_pair_destroy",
+ db_key_pair_destroy)
+ self.flags(
+ osapi_compute_extension=[
+ 'nova.api.openstack.compute.contrib.select_extensions'],
+ osapi_compute_ext_list=['Keypairs'])
+ self.app = fakes.wsgi_app_v3(init_only=('os-keypairs', 'servers'))
+
+ def test_keypair_list(self):
+ req = webob.Request.blank('/v3/os-keypairs')
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 200)
+ res_dict = jsonutils.loads(res.body)
+ response = {'keypairs': [{'keypair': fake_keypair('FAKE')}]}
+ self.assertEqual(res_dict, response)
+
+ def test_keypair_create(self):
+ body = {'keypair': {'name': 'create_test'}}
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 200)
+ res_dict = jsonutils.loads(res.body)
+ self.assertTrue(len(res_dict['keypair']['fingerprint']) > 0)
+ self.assertTrue(len(res_dict['keypair']['private_key']) > 0)
+
+ def test_keypair_create_with_empty_name(self):
+ body = {'keypair': {'name': ''}}
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ 'Keypair name must be between 1 and 255 characters long',
+ res_dict['badRequest']['message'])
+
+ def test_keypair_create_with_name_too_long(self):
+ body = {
+ 'keypair': {
+ 'name': 'a' * 256
+ }
+ }
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ 'Keypair name must be between 1 and 255 characters long',
+ res_dict['badRequest']['message'])
+
+ def test_keypair_create_with_non_alphanumeric_name(self):
+ body = {
+ 'keypair': {
+ 'name': 'test/keypair'
+ }
+ }
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Keypair name contains unsafe characters",
+ res_dict['badRequest']['message'])
+
+ def test_keypair_import(self):
+ body = {
+ 'keypair': {
+ 'name': 'create_test',
+ 'public_key': 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBYIznA'
+ 'x9D7118Q1VKGpXy2HDiKyUTM8XcUuhQpo0srqb9rboUp4'
+ 'a9NmCwpWpeElDLuva707GOUnfaBAvHBwsRXyxHJjRaI6Y'
+ 'Qj2oLJwqvaSaWUbyT1vtryRqy6J3TecN0WINY71f4uymi'
+ 'MZP0wby4bKBcYnac8KiCIlvkEl0ETjkOGUq8OyWRmn7lj'
+ 'j5SESEUdBP0JnuTFKddWTU/wD6wydeJaUhBTqOlHn0kX1'
+ 'GyqoNTE1UEhcM5ZRWgfUZfTjVyDF2kGj3vJLCJtJ8LoGc'
+ 'j7YaN4uPg1rBle+izwE/tLonRrds+cev8p6krSSrxWOwB'
+ 'bHkXa6OciiJDvkRzJXzf',
+ },
+ }
+
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 200)
+ # FIXME(ja): sholud we check that public_key was sent to create?
+ res_dict = jsonutils.loads(res.body)
+ self.assertTrue(len(res_dict['keypair']['fingerprint']) > 0)
+ self.assertFalse('private_key' in res_dict['keypair'])
+
+ def test_keypair_import_quota_limit(self):
+
+ def fake_quotas_count(self, context, resource, *args, **kwargs):
+ return 100
+
+ self.stubs.Set(QUOTAS, "count", fake_quotas_count)
+
+ body = {
+ 'keypair': {
+ 'name': 'create_test',
+ 'public_key': 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBYIznA'
+ 'x9D7118Q1VKGpXy2HDiKyUTM8XcUuhQpo0srqb9rboUp4'
+ 'a9NmCwpWpeElDLuva707GOUnfaBAvHBwsRXyxHJjRaI6Y'
+ 'Qj2oLJwqvaSaWUbyT1vtryRqy6J3TecN0WINY71f4uymi'
+ 'MZP0wby4bKBcYnac8KiCIlvkEl0ETjkOGUq8OyWRmn7lj'
+ 'j5SESEUdBP0JnuTFKddWTU/wD6wydeJaUhBTqOlHn0kX1'
+ 'GyqoNTE1UEhcM5ZRWgfUZfTjVyDF2kGj3vJLCJtJ8LoGc'
+ 'j7YaN4uPg1rBle+izwE/tLonRrds+cev8p6krSSrxWOwB'
+ 'bHkXa6OciiJDvkRzJXzf',
+ },
+ }
+
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 413)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Quota exceeded, too many key pairs.",
+ res_dict['overLimit']['message'])
+
+ def test_keypair_create_quota_limit(self):
+
+ def fake_quotas_count(self, context, resource, *args, **kwargs):
+ return 100
+
+ self.stubs.Set(QUOTAS, "count", fake_quotas_count)
+
+ body = {
+ 'keypair': {
+ 'name': 'create_test',
+ },
+ }
+
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 413)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Quota exceeded, too many key pairs.",
+ res_dict['overLimit']['message'])
+
+ def test_keypair_create_duplicate(self):
+ self.stubs.Set(db, "key_pair_create", db_key_pair_create_duplicate)
+ body = {'keypair': {'name': 'create_duplicate'}}
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 409)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(
+ "Key pair 'create_duplicate' already exists.",
+ res_dict['conflictingRequest']['message'])
+
+ def test_keypair_import_bad_key(self):
+ body = {
+ 'keypair': {
+ 'name': 'create_test',
+ 'public_key': 'ssh-what negative',
+ },
+ }
+
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 400)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual("Keypair data is invalid",
+ res_dict['badRequest']['message'])
+
+ def test_keypair_delete(self):
+ req = webob.Request.blank('/v3/os-keypairs/FAKE')
+ req.method = 'DELETE'
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 202)
+
+ def test_keypair_get_keypair_not_found(self):
+ req = webob.Request.blank('/v3/os-keypairs/DOESNOTEXIST')
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 404)
+
+ def test_keypair_delete_not_found(self):
+
+ def db_key_pair_get_not_found(context, user_id, name):
+ raise exception.KeypairNotFound(user_id=user_id, name=name)
+
+ self.stubs.Set(db, "key_pair_get",
+ db_key_pair_get_not_found)
+ req = webob.Request.blank('/v3/os-keypairs/WHAT')
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 404)
+
+ def test_keypair_show(self):
+
+ def _db_key_pair_get(context, user_id, name):
+ return {'name': 'foo', 'public_key': 'XXX', 'fingerprint': 'YYY'}
+
+ self.stubs.Set(db, "key_pair_get", _db_key_pair_get)
+
+ req = webob.Request.blank('/v3/os-keypairs/FAKE')
+ req.method = 'GET'
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(res.status_int, 200)
+ self.assertEqual('foo', res_dict['keypair']['name'])
+ self.assertEqual('XXX', res_dict['keypair']['public_key'])
+ self.assertEqual('YYY', res_dict['keypair']['fingerprint'])
+
+ def test_keypair_show_not_found(self):
+
+ def _db_key_pair_get(context, user_id, name):
+ raise exception.KeypairNotFound(user_id=user_id, name=name)
+
+ self.stubs.Set(db, "key_pair_get", _db_key_pair_get)
+
+ req = webob.Request.blank('/v3/os-keypairs/FAKE')
+ req.method = 'GET'
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ self.assertEqual(res.status_int, 404)
+
+ def test_show_server(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get())
+ req = webob.Request.blank('/v3/servers/1')
+ req.headers['Content-Type'] = 'application/json'
+ response = req.get_response(self.app)
+ self.assertEquals(response.status_int, 200)
+ res_dict = jsonutils.loads(response.body)
+ self.assertTrue('key_name' in res_dict['server'])
+ self.assertEquals(res_dict['server']['key_name'], '')
+
+ def test_detail_servers(self):
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ fakes.fake_instance_get_all_by_filters())
+ req = fakes.HTTPRequest.blank('/v3/servers/detail')
+ res = req.get_response(self.app)
+ server_dicts = jsonutils.loads(res.body)['servers']
+ self.assertEquals(len(server_dicts), 5)
+
+ for server_dict in server_dicts:
+ self.assertTrue('key_name' in server_dict)
+ self.assertEquals(server_dict['key_name'], '')
+
+ def test_keypair_create_with_invalid_keypair_body(self):
+ body = {'alpha': {'name': 'create_test'}}
+ req = webob.Request.blank('/v3/os-keypairs')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['Content-Type'] = 'application/json'
+ res = req.get_response(self.app)
+ res_dict = jsonutils.loads(res.body)
+ self.assertEqual(res.status_int, 400)
+ self.assertEqual(res_dict['badRequest']['message'],
+ "Invalid request body")
+
+
+class KeypairsXMLSerializerTest(test.TestCase):
+ def setUp(self):
+ super(KeypairsXMLSerializerTest, self).setUp()
+ self.deserializer = wsgi.XMLDeserializer()
+
+ def test_default_serializer(self):
+ exemplar = dict(keypair=dict(
+ public_key='fake_public_key',
+ private_key='fake_private_key',
+ fingerprint='fake_fingerprint',
+ user_id='fake_user_id',
+ name='fake_key_name'))
+ serializer = keypairs.KeypairTemplate()
+ text = serializer.serialize(exemplar)
+
+ tree = etree.fromstring(text)
+
+ self.assertEqual('keypair', tree.tag)
+ for child in tree:
+ self.assertTrue(child.tag in exemplar['keypair'])
+ self.assertEqual(child.text, exemplar['keypair'][child.tag])
+
+ def test_index_serializer(self):
+ exemplar = dict(keypairs=[
+ dict(keypair=dict(
+ name='key1_name',
+ public_key='key1_key',
+ fingerprint='key1_fingerprint')),
+ dict(keypair=dict(
+ name='key2_name',
+ public_key='key2_key',
+ fingerprint='key2_fingerprint'))])
+ serializer = keypairs.KeypairsTemplate()
+ text = serializer.serialize(exemplar)
+
+ tree = etree.fromstring(text)
+
+ self.assertEqual('keypairs', tree.tag)
+ self.assertEqual(len(exemplar['keypairs']), len(tree))
+ for idx, keypair in enumerate(tree):
+ self.assertEqual('keypair', keypair.tag)
+ kp_data = exemplar['keypairs'][idx]['keypair']
+ for child in keypair:
+ self.assertTrue(child.tag in kp_data)
+ self.assertEqual(child.text, kp_data[child.tag])
+
+ def test_deserializer(self):
+ exemplar = dict(keypair=dict(
+ name='key_name',
+ public_key='public_key'))
+ intext = ("<?xml version='1.0' encoding='UTF-8'?>\n"
+ '<keypair><name>key_name</name>'
+ '<public_key>public_key</public_key></keypair>')
+
+ result = self.deserializer.deserialize(intext)['body']
+ self.assertEqual(result, exemplar)
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_servers.py b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
new file mode 100644
index 000000000..da17d8fd5
--- /dev/null
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
@@ -0,0 +1,5813 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2010-2011 OpenStack Foundation
+# Copyright 2011 Piston Cloud Computing, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import base64
+import datetime
+import testtools
+import urlparse
+import uuid
+
+import iso8601
+from lxml import etree
+from oslo.config import cfg
+import webob
+
+from nova.api.openstack import compute
+from nova.api.openstack.compute import plugins
+from nova.api.openstack.compute.plugins.v3 import ips
+from nova.api.openstack.compute.plugins.v3 import servers
+from nova.api.openstack.compute import views
+from nova.api.openstack import xmlutil
+from nova.compute import api as compute_api
+from nova.compute import flavors
+from nova.compute import task_states
+from nova.compute import vm_states
+from nova import context
+from nova import db
+from nova.db.sqlalchemy import models
+from nova import exception
+from nova.image import glance
+from nova.network import manager
+from nova.network.quantumv2 import api as quantum_api
+from nova.openstack.common import jsonutils
+from nova.openstack.common import policy as common_policy
+from nova.openstack.common import rpc
+from nova import policy
+from nova import test
+from nova.tests.api.openstack import fakes
+from nova.tests import fake_network
+from nova.tests.image import fake
+from nova.tests import matchers
+from nova.tests import utils
+
+CONF = cfg.CONF
+CONF.import_opt('password_length', 'nova.utils')
+CONF.import_opt('scheduler_topic', 'nova.scheduler.rpcapi')
+
+FAKE_UUID = fakes.FAKE_UUID
+NS = "{http://docs.openstack.org/compute/api/v1.1}"
+ATOMNS = "{http://www.w3.org/2005/Atom}"
+XPATH_NS = {
+ 'atom': 'http://www.w3.org/2005/Atom',
+ 'ns': 'http://docs.openstack.org/compute/api/v1.1'
+}
+
+INSTANCE_IDS = {FAKE_UUID: 1}
+
+
+def fake_gen_uuid():
+ return FAKE_UUID
+
+
+def return_servers_empty(context, *args, **kwargs):
+ return []
+
+
+def return_security_group(context, instance_id, security_group_id):
+ pass
+
+
+def instance_update(context, instance_uuid, values):
+ inst = fakes.stub_instance(INSTANCE_IDS.get(instance_uuid),
+ name=values.get('display_name'))
+ return (inst, inst)
+
+
+def fake_compute_api(cls, req, id):
+ return True
+
+
+class MockSetAdminPassword(object):
+ def __init__(self):
+ self.instance_id = None
+ self.password = None
+
+ def __call__(self, context, instance_id, password):
+ self.instance_id = instance_id
+ self.password = password
+
+
+class Base64ValidationTest(test.TestCase):
+ def setUp(self):
+ super(Base64ValidationTest, self).setUp()
+ ext_info = plugins.LoadedExtensionInfo()
+ self.controller = servers.ServersController(extension_info=ext_info)
+
+ def test_decode_base64(self):
+ value = "A random string"
+ result = self.controller._decode_base64(base64.b64encode(value))
+ self.assertEqual(result, value)
+
+ def test_decode_base64_binary(self):
+ value = "\x00\x12\x75\x99"
+ result = self.controller._decode_base64(base64.b64encode(value))
+ self.assertEqual(result, value)
+
+ def test_decode_base64_whitespace(self):
+ value = "A random string"
+ encoded = base64.b64encode(value)
+ white = "\n \n%s\t%s\n" % (encoded[:2], encoded[2:])
+ result = self.controller._decode_base64(white)
+ self.assertEqual(result, value)
+
+ def test_decode_base64_invalid(self):
+ invalid = "A random string"
+ result = self.controller._decode_base64(invalid)
+ self.assertEqual(result, None)
+
+ def test_decode_base64_illegal_bytes(self):
+ value = "A random string"
+ encoded = base64.b64encode(value)
+ white = ">\x01%s*%s()" % (encoded[:2], encoded[2:])
+ result = self.controller._decode_base64(white)
+ self.assertEqual(result, None)
+
+
+class QuantumV2Subclass(quantum_api.API):
+ """Used to ensure that API handles subclasses properly."""
+ pass
+
+
+class ServersControllerTest(test.TestCase):
+
+ def setUp(self):
+ super(ServersControllerTest, self).setUp()
+ self.flags(verbose=True, use_ipv6=False)
+ fakes.stub_out_rate_limiting(self.stubs)
+ fakes.stub_out_key_pair_funcs(self.stubs)
+ fake.stub_out_image_service(self.stubs)
+ return_server = fakes.fake_instance_get()
+ return_servers = fakes.fake_instance_get_all_by_filters()
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ return_servers)
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ return_server)
+ self.stubs.Set(db, 'instance_add_security_group',
+ return_security_group)
+ self.stubs.Set(db, 'instance_update_and_get_original',
+ instance_update)
+
+ ext_info = plugins.LoadedExtensionInfo()
+ self.controller = servers.ServersController(extension_info=ext_info)
+ self.ips_controller = ips.IPsController()
+ policy.reset()
+ policy.init()
+ fake_network.stub_out_nw_api_get_instance_nw_info(self.stubs,
+ spectacular=True)
+
+ # def test_can_check_loaded_extensions(self):
+ #self.ext_mgr.extensions = {'os-fake': None}
+ #self.assertTrue(self.controller.ext_mgr.is_loaded('os-fake'))
+ #self.assertFalse(self.controller.ext_mgr.is_loaded('os-not-loaded'))
+
+ def test_requested_networks_prefix(self):
+ uuid = 'br-00000000-0000-0000-0000-000000000000'
+ requested_networks = [{'uuid': uuid}]
+ res = self.controller._get_requested_networks(requested_networks)
+ self.assertTrue((uuid, None) in res)
+
+ def test_requested_networks_quantumv2_enabled_with_port(self):
+ self.flags(network_api_class='nova.network.quantumv2.api.API')
+ port = 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee'
+ requested_networks = [{'port': port}]
+ res = self.controller._get_requested_networks(requested_networks)
+ self.assertEquals(res, [(None, None, port)])
+
+ def test_requested_networks_quantumv2_enabled_with_network(self):
+ self.flags(network_api_class='nova.network.quantumv2.api.API')
+ network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
+ requested_networks = [{'uuid': network}]
+ res = self.controller._get_requested_networks(requested_networks)
+ self.assertEquals(res, [(network, None, None)])
+
+ def test_requested_networks_quantumv2_enabled_with_network_and_port(self):
+ self.flags(network_api_class='nova.network.quantumv2.api.API')
+ network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
+ port = 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee'
+ requested_networks = [{'uuid': network, 'port': port}]
+ res = self.controller._get_requested_networks(requested_networks)
+ self.assertEquals(res, [(None, None, port)])
+
+ def test_requested_networks_quantumv2_disabled_with_port(self):
+ port = 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee'
+ requested_networks = [{'port': port}]
+ self.assertRaises(
+ webob.exc.HTTPBadRequest,
+ self.controller._get_requested_networks,
+ requested_networks)
+
+ def test_requested_networks_api_enabled_with_v2_subclass(self):
+ self.flags(network_api_class='nova.network.quantumv2.api.API')
+ network = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
+ port = 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee'
+ requested_networks = [{'uuid': network, 'port': port}]
+ res = self.controller._get_requested_networks(requested_networks)
+ self.assertEquals(res, [(None, None, port)])
+
+ def test_requested_networks_quantumv2_subclass_with_port(self):
+ cls = 'nova.tests.api.openstack.compute.test_servers.QuantumV2Subclass'
+ self.flags(network_api_class=cls)
+ port = 'eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee'
+ requested_networks = [{'port': port}]
+ res = self.controller._get_requested_networks(requested_networks)
+ self.assertEquals(res, [(None, None, port)])
+
+ def test_get_server_by_uuid(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ res_dict = self.controller.show(req, FAKE_UUID)
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+
+ def test_unique_host_id(self):
+ """Create two servers with the same host and different
+ project_ids and check that the hostId's are unique"""
+ def return_instance_with_host(self, *args):
+ project_id = str(uuid.uuid4())
+ return fakes.stub_instance(id=1, uuid=FAKE_UUID,
+ project_id=project_id,
+ host='fake_host')
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ return_instance_with_host)
+ self.stubs.Set(db, 'instance_get',
+ return_instance_with_host)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ server1 = self.controller.show(req, FAKE_UUID)
+ server2 = self.controller.show(req, FAKE_UUID)
+
+ self.assertNotEqual(server1['server']['hostId'],
+ server2['server']['hostId'])
+
+ def test_get_server_by_id(self):
+ self.flags(use_ipv6=True)
+ image_bookmark = "http://localhost/fake/images/10"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+
+ uuid = FAKE_UUID
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % uuid)
+ res_dict = self.controller.show(req, uuid)
+
+ expected_server = {
+ "server": {
+ "id": uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 0,
+ "name": "server1",
+ "status": "BUILD",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "hostId": '',
+ "image": {
+ "id": "10",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {
+ "seq": "1",
+ },
+ "links": [
+ {
+ "rel": "self",
+ "href": "http://localhost/v3/fake/servers/%s" % uuid,
+ },
+ {
+ "rel": "bookmark",
+ "href": "http://localhost/fake/servers/%s" % uuid,
+ },
+ ],
+ }
+ }
+
+ self.assertThat(res_dict, matchers.DictMatches(expected_server))
+
+ def test_get_server_with_active_status_by_id(self):
+ image_bookmark = "http://localhost/fake/images/10"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+
+ new_return_server = fakes.fake_instance_get(
+ vm_state=vm_states.ACTIVE, progress=100)
+ self.stubs.Set(db, 'instance_get_by_uuid', new_return_server)
+
+ uuid = FAKE_UUID
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % uuid)
+ res_dict = self.controller.show(req, uuid)
+ expected_server = {
+ "server": {
+ "id": uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 100,
+ "name": "server1",
+ "status": "ACTIVE",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "hostId": '',
+ "image": {
+ "id": "10",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {
+ "seq": "1",
+ },
+ "links": [
+ {
+ "rel": "self",
+ "href": "http://localhost/v3/fake/servers/%s" % uuid,
+ },
+ {
+ "rel": "bookmark",
+ "href": "http://localhost/fake/servers/%s" % uuid,
+ },
+ ],
+ }
+ }
+
+ self.assertThat(res_dict, matchers.DictMatches(expected_server))
+
+ def test_get_server_with_id_image_ref_by_id(self):
+ image_ref = "10"
+ image_bookmark = "http://localhost/fake/images/10"
+ flavor_id = "1"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+
+ new_return_server = fakes.fake_instance_get(
+ vm_state=vm_states.ACTIVE, image_ref=image_ref,
+ flavor_id=flavor_id, progress=100)
+ self.stubs.Set(db, 'instance_get_by_uuid', new_return_server)
+
+ uuid = FAKE_UUID
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % uuid)
+ res_dict = self.controller.show(req, uuid)
+ expected_server = {
+ "server": {
+ "id": uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 100,
+ "name": "server1",
+ "status": "ACTIVE",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "hostId": '',
+ "image": {
+ "id": "10",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {
+ "seq": "1",
+ },
+ "links": [
+ {
+ "rel": "self",
+ "href": "http://localhost/v3/fake/servers/%s" % uuid,
+ },
+ {
+ "rel": "bookmark",
+ "href": "http://localhost/fake/servers/%s" % uuid,
+ },
+ ],
+ }
+ }
+
+ self.assertThat(res_dict, matchers.DictMatches(expected_server))
+
+ def test_get_server_addresses_from_cache(self):
+ pub0 = ('172.19.0.1', '172.19.0.2',)
+ pub1 = ('1.2.3.4',)
+ pub2 = ('b33f::fdee:ddff:fecc:bbaa',)
+ priv0 = ('192.168.0.3', '192.168.0.4',)
+
+ def _ip(ip):
+ return {'address': ip, 'type': 'fixed'}
+
+ nw_cache = [
+ {'address': 'aa:aa:aa:aa:aa:aa',
+ 'id': 1,
+ 'network': {'bridge': 'br0',
+ 'id': 1,
+ 'label': 'public',
+ 'subnets': [{'cidr': '172.19.0.0/24',
+ 'ips': [_ip(ip) for ip in pub0]},
+ {'cidr': '1.2.3.0/16',
+ 'ips': [_ip(ip) for ip in pub1]},
+ {'cidr': 'b33f::/64',
+ 'ips': [_ip(ip) for ip in pub2]}]}},
+ {'address': 'bb:bb:bb:bb:bb:bb',
+ 'id': 2,
+ 'network': {'bridge': 'br1',
+ 'id': 2,
+ 'label': 'private',
+ 'subnets': [{'cidr': '192.168.0.0/24',
+ 'ips': [_ip(ip) for ip in priv0]}]}}]
+
+ return_server = fakes.fake_instance_get(nw_cache=nw_cache)
+ self.stubs.Set(db, 'instance_get_by_uuid', return_server)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s/ips' % FAKE_UUID)
+ res_dict = self.ips_controller.index(req, FAKE_UUID)
+
+ expected = {
+ 'addresses': {
+ 'private': [
+ {'version': 4, 'addr': '192.168.0.3'},
+ {'version': 4, 'addr': '192.168.0.4'},
+ ],
+ 'public': [
+ {'version': 4, 'addr': '172.19.0.1'},
+ {'version': 4, 'addr': '172.19.0.2'},
+ {'version': 4, 'addr': '1.2.3.4'},
+ {'version': 6, 'addr': 'b33f::fdee:ddff:fecc:bbaa'},
+ ],
+ },
+ }
+ self.assertThat(res_dict, matchers.DictMatches(expected))
+
+ def test_get_server_addresses_nonexistent_network(self):
+ url = '/v3/fake/servers/%s/ips/network_0' % FAKE_UUID
+ req = fakes.HTTPRequestV3.blank(url)
+ self.assertRaises(webob.exc.HTTPNotFound, self.ips_controller.show,
+ req, FAKE_UUID, 'network_0')
+
+ def test_get_server_addresses_nonexistent_server(self):
+ def fake_instance_get(*args, **kwargs):
+ raise exception.InstanceNotFound(instance_id='fake')
+
+ self.stubs.Set(db, 'instance_get_by_uuid', fake_instance_get)
+
+ server_id = str(uuid.uuid4())
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s/ips' % server_id)
+ self.assertRaises(webob.exc.HTTPNotFound,
+ self.ips_controller.index, req, server_id)
+
+ def test_get_server_list_empty(self):
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ return_servers_empty)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ res_dict = self.controller.index(req)
+
+ num_servers = len(res_dict['servers'])
+ self.assertEqual(0, num_servers)
+
+ def test_get_server_list_with_reservation_id(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?reservation_id=foo')
+ res_dict = self.controller.index(req)
+
+ i = 0
+ for s in res_dict['servers']:
+ self.assertEqual(s.get('name'), 'server%d' % (i + 1))
+ i += 1
+
+ def test_get_server_list_with_reservation_id_empty(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail?'
+ 'reservation_id=foo')
+ res_dict = self.controller.detail(req)
+
+ i = 0
+ for s in res_dict['servers']:
+ self.assertEqual(s.get('name'), 'server%d' % (i + 1))
+ i += 1
+
+ def test_get_server_list_with_reservation_id_details(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail?'
+ 'reservation_id=foo')
+ res_dict = self.controller.detail(req)
+
+ i = 0
+ for s in res_dict['servers']:
+ self.assertEqual(s.get('name'), 'server%d' % (i + 1))
+ i += 1
+
+ def test_get_server_list(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ res_dict = self.controller.index(req)
+
+ self.assertEqual(len(res_dict['servers']), 5)
+ for i, s in enumerate(res_dict['servers']):
+ self.assertEqual(s['id'], fakes.get_fake_uuid(i))
+ self.assertEqual(s['name'], 'server%d' % (i + 1))
+ self.assertEqual(s.get('image', None), None)
+
+ expected_links = [
+ {
+ "rel": "self",
+ "href": "http://localhost/v3/fake/servers/%s" % s['id'],
+ },
+ {
+ "rel": "bookmark",
+ "href": "http://localhost/fake/servers/%s" % s['id'],
+ },
+ ]
+
+ self.assertEqual(s['links'], expected_links)
+
+ def test_get_servers_with_limit(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?limit=3')
+ res_dict = self.controller.index(req)
+
+ servers = res_dict['servers']
+ self.assertEqual([s['id'] for s in servers],
+ [fakes.get_fake_uuid(i) for i in xrange(len(servers))])
+
+ servers_links = res_dict['servers_links']
+ self.assertEqual(servers_links[0]['rel'], 'next')
+ href_parts = urlparse.urlparse(servers_links[0]['href'])
+ self.assertEqual('/v3/fake/servers', href_parts.path)
+ params = urlparse.parse_qs(href_parts.query)
+ expected_params = {'limit': ['3'],
+ 'marker': [fakes.get_fake_uuid(2)]}
+ self.assertThat(params, matchers.DictMatches(expected_params))
+
+ def test_get_servers_with_limit_bad_value(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?limit=aaa')
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.index, req)
+
+ def test_get_server_details_empty(self):
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ return_servers_empty)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail')
+ res_dict = self.controller.index(req)
+
+ num_servers = len(res_dict['servers'])
+ self.assertEqual(0, num_servers)
+
+ def test_get_server_details_with_limit(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail?limit=3')
+ res = self.controller.detail(req)
+
+ servers = res['servers']
+ self.assertEqual([s['id'] for s in servers],
+ [fakes.get_fake_uuid(i) for i in xrange(len(servers))])
+
+ servers_links = res['servers_links']
+ self.assertEqual(servers_links[0]['rel'], 'next')
+
+ href_parts = urlparse.urlparse(servers_links[0]['href'])
+ self.assertEqual('/v3/fake/servers', href_parts.path)
+ params = urlparse.parse_qs(href_parts.query)
+ expected = {'limit': ['3'], 'marker': [fakes.get_fake_uuid(2)]}
+ self.assertThat(params, matchers.DictMatches(expected))
+
+ def test_get_server_details_with_limit_bad_value(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail?limit=aaa')
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.detail, req)
+
+ def test_get_server_details_with_limit_and_other_params(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail'
+ '?limit=3&blah=2:t')
+ res = self.controller.detail(req)
+
+ servers = res['servers']
+ self.assertEqual([s['id'] for s in servers],
+ [fakes.get_fake_uuid(i) for i in xrange(len(servers))])
+
+ servers_links = res['servers_links']
+ self.assertEqual(servers_links[0]['rel'], 'next')
+
+ href_parts = urlparse.urlparse(servers_links[0]['href'])
+ self.assertEqual('/v3/fake/servers', href_parts.path)
+ params = urlparse.parse_qs(href_parts.query)
+ expected = {'limit': ['3'], 'blah': ['2:t'],
+ 'marker': [fakes.get_fake_uuid(2)]}
+ self.assertThat(params, matchers.DictMatches(expected))
+
+ def test_get_servers_with_too_big_limit(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?limit=30')
+ res_dict = self.controller.index(req)
+ self.assertTrue('servers_links' not in res_dict)
+
+ def test_get_servers_with_bad_limit(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?limit=asdf')
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.index, req)
+
+ def test_get_servers_with_marker(self):
+ url = '/v3/fake/servers?marker=%s' % fakes.get_fake_uuid(2)
+ req = fakes.HTTPRequestV3.blank(url)
+ servers = self.controller.index(req)['servers']
+ self.assertEqual([s['name'] for s in servers], ["server4", "server5"])
+
+ def test_get_servers_with_limit_and_marker(self):
+ url = '/v3/fake/servers?limit=2&marker=%s' % fakes.get_fake_uuid(1)
+ req = fakes.HTTPRequestV3.blank(url)
+ servers = self.controller.index(req)['servers']
+ self.assertEqual([s['name'] for s in servers], ['server3', 'server4'])
+
+ def test_get_servers_with_bad_marker(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?limit=2&marker=asdf')
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.index, req)
+
+ def test_get_servers_with_bad_option(self):
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?unknownoption=whee')
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_allows_image(self):
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ self.assertTrue('image' in search_opts)
+ self.assertEqual(search_opts['image'], '12345')
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?image=12345')
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_tenant_id_filter_converts_to_project_id_for_admin(self):
+ def fake_get_all(context, filters=None, sort_key=None,
+ sort_dir='desc', limit=None, marker=None):
+ self.assertNotEqual(filters, None)
+ self.assertEqual(filters['project_id'], 'fake')
+ self.assertFalse(filters.get('tenant_id'))
+ return [fakes.stub_instance(100)]
+
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?tenant_id=fake',
+ use_admin_context=True)
+ res = self.controller.index(req)
+
+ self.assertTrue('servers' in res)
+
+ def test_admin_restricted_tenant(self):
+ def fake_get_all(context, filters=None, sort_key=None,
+ sort_dir='desc', limit=None, marker=None):
+ self.assertNotEqual(filters, None)
+ self.assertEqual(filters['project_id'], 'fake')
+ return [fakes.stub_instance(100)]
+
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers',
+ use_admin_context=True)
+ res = self.controller.index(req)
+
+ self.assertTrue('servers' in res)
+
+ def test_all_tenants_pass_policy(self):
+ def fake_get_all(context, filters=None, sort_key=None,
+ sort_dir='desc', limit=None, marker=None):
+ self.assertNotEqual(filters, None)
+ self.assertTrue('project_id' not in filters)
+ return [fakes.stub_instance(100)]
+
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ fake_get_all)
+
+ rules = {
+ "compute:get_all_tenants":
+ common_policy.parse_rule("project_id:fake"),
+ "compute:get_all":
+ common_policy.parse_rule("project_id:fake"),
+ }
+
+ common_policy.set_rules(common_policy.Rules(rules))
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?all_tenants=1')
+ res = self.controller.index(req)
+
+ self.assertTrue('servers' in res)
+
+ def test_all_tenants_fail_policy(self):
+ def fake_get_all(context, filters=None, sort_key=None,
+ sort_dir='desc', limit=None, marker=None):
+ self.assertNotEqual(filters, None)
+ return [fakes.stub_instance(100)]
+
+ rules = {
+ "compute:get_all_tenants":
+ common_policy.parse_rule("project_id:non_fake"),
+ "compute:get_all":
+ common_policy.parse_rule("project_id:fake"),
+ }
+
+ common_policy.set_rules(common_policy.Rules(rules))
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?all_tenants=1')
+ self.assertRaises(exception.PolicyNotAuthorized,
+ self.controller.index, req)
+
+ def test_get_servers_allows_flavor(self):
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ self.assertTrue('flavor' in search_opts)
+ # flavor is an integer ID
+ self.assertEqual(search_opts['flavor'], '12345')
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?flavor=12345')
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_with_bad_flavor(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?flavor=abcde')
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 0)
+
+ def test_get_servers_allows_status(self):
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ self.assertTrue('vm_state' in search_opts)
+ self.assertEqual(search_opts['vm_state'], vm_states.ACTIVE)
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?status=active')
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_invalid_status(self):
+ # Test getting servers by invalid status.
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?status=baloney',
+ use_admin_context=False)
+ servers = self.controller.index(req)['servers']
+ self.assertEqual(len(servers), 0)
+
+ def test_get_servers_deleted_status_as_user(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?status=deleted',
+ use_admin_context=False)
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.detail, req)
+
+ def test_get_servers_deleted_status_as_admin(self):
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertTrue('vm_state' in search_opts)
+ self.assertEqual(search_opts['vm_state'], 'deleted')
+
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?status=deleted',
+ use_admin_context=True)
+
+ servers = self.controller.detail(req)['servers']
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_allows_name(self):
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ self.assertTrue('name' in search_opts)
+ self.assertEqual(search_opts['name'], 'whee.*')
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?name=whee.*')
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_allows_changes_since(self):
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ self.assertTrue('changes-since' in search_opts)
+ changes_since = datetime.datetime(2011, 1, 24, 17, 8, 1,
+ tzinfo=iso8601.iso8601.UTC)
+ self.assertEqual(search_opts['changes-since'], changes_since)
+ self.assertTrue('deleted' not in search_opts)
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ params = 'changes-since=2011-01-24T17:08:01Z'
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?%s' % params)
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_allows_changes_since_bad_value(self):
+ params = 'changes-since=asdf'
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?%s' % params)
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.index, req)
+
+ def test_get_servers_admin_filters_as_user(self):
+ """Test getting servers by admin-only or unknown options when
+ context is not admin. Make sure the admin and unknown options
+ are stripped before they get to compute_api.get_all()
+ """
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ # Allowed by user
+ self.assertTrue('name' in search_opts)
+ self.assertTrue('ip' in search_opts)
+ # OSAPI converts status to vm_state
+ self.assertTrue('vm_state' in search_opts)
+ # Allowed only by admins with admin API on
+ self.assertFalse('unknown_option' in search_opts)
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ query_str = "name=foo&ip=10.*&status=active&unknown_option=meow"
+ req = fakes.HTTPRequest.blank('/v3/fake/servers?%s' % query_str)
+ res = self.controller.index(req)
+
+ servers = res['servers']
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_admin_options_as_admin(self):
+ """Test getting servers by admin-only or unknown options when
+ context is admin. All options should be passed
+ """
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ # Allowed by user
+ self.assertTrue('name' in search_opts)
+ # OSAPI converts status to vm_state
+ self.assertTrue('vm_state' in search_opts)
+ # Allowed only by admins with admin API on
+ self.assertTrue('ip' in search_opts)
+ self.assertTrue('unknown_option' in search_opts)
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ query_str = "name=foo&ip=10.*&status=active&unknown_option=meow"
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?%s' % query_str,
+ use_admin_context=True)
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_allows_ip(self):
+ """Test getting servers by ip."""
+
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ self.assertTrue('ip' in search_opts)
+ self.assertEqual(search_opts['ip'], '10\..*')
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?ip=10\..*')
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_get_servers_admin_allows_ip6(self):
+ """Test getting servers by ip6 with admin_api enabled and
+ admin context
+ """
+ server_uuid = str(uuid.uuid4())
+
+ def fake_get_all(compute_self, context, search_opts=None,
+ sort_key=None, sort_dir='desc',
+ limit=None, marker=None):
+ self.assertNotEqual(search_opts, None)
+ self.assertTrue('ip6' in search_opts)
+ self.assertEqual(search_opts['ip6'], 'ffff.*')
+ return [fakes.stub_instance(100, uuid=server_uuid)]
+
+ self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers?ip6=ffff.*',
+ use_admin_context=True)
+ servers = self.controller.index(req)['servers']
+
+ self.assertEqual(len(servers), 1)
+ self.assertEqual(servers[0]['id'], server_uuid)
+
+ def test_update_server_all_attributes(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(name='server_test',
+ access_ipv4='0.0.0.0',
+ access_ipv6='beef::0123'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {
+ 'name': 'server_test',
+ 'accessIPv4': '0.0.0.0',
+ 'accessIPv6': 'beef::0123',
+ }}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['name'], 'server_test')
+ self.assertEqual(res_dict['server']['accessIPv4'], '0.0.0.0')
+ self.assertEqual(res_dict['server']['accessIPv6'], 'beef::0123')
+
+ def test_update_server_invalid_xml_raises_lookup(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/xml'
+ #xml request which raises LookupError
+ req.body = """<?xml version="1.0" encoding="TF-8"?>
+ <metadata
+ xmlns="http://docs.openstack.org/compute/api/v1.1"
+ key="Label"></meta>"""
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 400)
+
+ def test_update_server_invalid_xml_raises_expat(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/xml'
+ #xml request which raises ExpatError
+ req.body = """<?xml version="1.0" encoding="UTF-8"?>
+ <metadata
+ xmlns="http://docs.openstack.org/compute/api/v1.1"
+ key="Label"></meta>"""
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 400)
+
+ def test_update_server_name(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(name='server_test'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'name': 'server_test'}}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['name'], 'server_test')
+
+ def test_update_server_name_too_long(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(name='server_test'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'name': 'x' * 256}}
+ req.body = jsonutils.dumps(body)
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
+ req, FAKE_UUID, body)
+
+ def test_update_server_access_ipv4(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv4='0.0.0.0'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv4': '0.0.0.0'}}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['accessIPv4'], '0.0.0.0')
+
+ def test_update_server_access_ipv4_bad_format(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv4='0.0.0.0'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv4': 'bad_format'}}
+ req.body = jsonutils.dumps(body)
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
+ req, FAKE_UUID, body)
+
+ def test_update_server_access_ipv4_none(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv4='0.0.0.0'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv4': None}}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['accessIPv4'], '')
+
+ def test_update_server_access_ipv4_blank(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv4='0.0.0.0'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv4': ''}}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['accessIPv4'], '')
+
+ def test_update_server_access_ipv6(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv6='beef::0123'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv6': 'beef::0123'}}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['accessIPv6'], 'beef::0123')
+
+ def test_update_server_access_ipv6_bad_format(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv6='beef::0123'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv6': 'bad_format'}}
+ req.body = jsonutils.dumps(body)
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.update,
+ req, FAKE_UUID, body)
+
+ def test_update_server_access_ipv6_none(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv6='beef::0123'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv6': None}}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['accessIPv6'], '')
+
+ def test_update_server_access_ipv6_blank(self):
+ self.stubs.Set(db, 'instance_get',
+ fakes.fake_instance_get(access_ipv6='beef::0123'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'accessIPv6': ''}}
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['accessIPv6'], '')
+
+ def test_update_server_personality(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {
+ 'server': {
+ 'personality': []
+ }
+ }
+ req.body = jsonutils.dumps(body)
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.update, req, FAKE_UUID, body)
+
+ def test_update_server_adminPass_ignored(self):
+ inst_dict = dict(name='server_test', adminPass='bacon')
+ body = dict(server=inst_dict)
+
+ def server_update(context, id, params):
+ filtered_dict = {
+ 'display_name': 'server_test',
+ }
+ self.assertEqual(params, filtered_dict)
+ filtered_dict['uuid'] = id
+ return filtered_dict
+
+ self.stubs.Set(db, 'instance_update', server_update)
+ # FIXME (comstud)
+ # self.stubs.Set(db, 'instance_get',
+ # return_server_with_attributes(name='server_test'))
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = "application/json"
+ req.body = jsonutils.dumps(body)
+ res_dict = self.controller.update(req, FAKE_UUID, body)
+
+ self.assertEqual(res_dict['server']['id'], FAKE_UUID)
+ self.assertEqual(res_dict['server']['name'], 'server_test')
+
+ def test_update_server_not_found(self):
+ def fake_get(*args, **kwargs):
+ raise exception.InstanceNotFound(instance_id='fake')
+
+ self.stubs.Set(compute_api.API, 'get', fake_get)
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'name': 'server_test'}}
+ req.body = jsonutils.dumps(body)
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.update,
+ req, FAKE_UUID, body)
+
+ def test_update_server_not_found_on_update(self):
+ def fake_update(*args, **kwargs):
+ raise exception.InstanceNotFound(instance_id='fake')
+
+ self.stubs.Set(compute_api.API, 'update', fake_update)
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'server': {'name': 'server_test'}}
+ req.body = jsonutils.dumps(body)
+ self.assertRaises(webob.exc.HTTPNotFound, self.controller.update,
+ req, FAKE_UUID, body)
+
+ def test_rebuild_instance_with_access_ipv4_bad_format(self):
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ access_ipv4 = 'bad_format'
+ access_ipv6 = 'fead::1234'
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_with_blank_metadata_key(self):
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ access_ipv4 = '0.0.0.0'
+ access_ipv6 = 'fead::1234'
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ '': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_with_metadata_key_too_long(self):
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ access_ipv4 = '0.0.0.0'
+ access_ipv6 = 'fead::1234'
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ ('a' * 260): 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_with_metadata_value_too_long(self):
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ access_ipv4 = '0.0.0.0'
+ access_ipv6 = 'fead::1234'
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ 'key1': ('a' * 260),
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_fails_when_min_ram_too_small(self):
+ # make min_ram larger than our instance ram size
+ def fake_get_image(self, context, image_href):
+ return dict(id='76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
+ name='public image', is_public=True,
+ status='active', properties={'key1': 'value1'},
+ min_ram="4096", min_disk="10")
+
+ self.stubs.Set(fake._FakeImageService, 'show', fake_get_image)
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_fails_when_min_disk_too_small(self):
+ # make min_disk larger than our instance disk size
+ def fake_get_image(self, context, image_href):
+ return dict(id='76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
+ name='public image', is_public=True,
+ status='active', properties={'key1': 'value1'},
+ min_ram="128", min_disk="100000")
+
+ self.stubs.Set(fake._FakeImageService, 'show', fake_get_image)
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_image_too_large(self):
+ # make image size larger than our instance disk size
+ size = str(1000 * (1024 ** 3))
+
+ def fake_get_image(self, context, image_href):
+ return dict(id='76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
+ name='public image', is_public=True,
+ status='active', size=size)
+
+ self.stubs.Set(fake._FakeImageService, 'show', fake_get_image)
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_with_deleted_image(self):
+ def fake_get_image(self, context, image_href):
+ return dict(id='76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
+ name='public image', is_public=True,
+ status='DELETED')
+
+ self.stubs.Set(fake._FakeImageService, 'show', fake_get_image)
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_rebuild_instance_with_access_ipv6_bad_format(self):
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ access_ipv4 = '1.2.3.4'
+ access_ipv6 = 'bad_format'
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
+ def test_get_all_server_details(self):
+ expected_flavor = {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": 'http://localhost/fake/flavors/1',
+ },
+ ],
+ }
+ expected_image = {
+ "id": "10",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": 'http://localhost/fake/images/10',
+ },
+ ],
+ }
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail')
+ res_dict = self.controller.detail(req)
+
+ for i, s in enumerate(res_dict['servers']):
+ self.assertEqual(s['id'], fakes.get_fake_uuid(i))
+ self.assertEqual(s['hostId'], '')
+ self.assertEqual(s['name'], 'server%d' % (i + 1))
+ self.assertEqual(s['image'], expected_image)
+ self.assertEqual(s['flavor'], expected_flavor)
+ self.assertEqual(s['status'], 'BUILD')
+ self.assertEqual(s['metadata']['seq'], str(i + 1))
+
+ def test_get_all_server_details_with_host(self):
+ '''
+ We want to make sure that if two instances are on the same host, then
+ they return the same hostId. If two instances are on different hosts,
+ they should return different hostIds. In this test, there are 5
+ instances - 2 on one host and 3 on another.
+ '''
+
+ def return_servers_with_host(context, *args, **kwargs):
+ return [fakes.stub_instance(i + 1, 'fake', 'fake', host=i % 2,
+ uuid=fakes.get_fake_uuid(i))
+ for i in xrange(5)]
+
+ self.stubs.Set(db, 'instance_get_all_by_filters',
+ return_servers_with_host)
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/detail')
+ res_dict = self.controller.detail(req)
+
+ server_list = res_dict['servers']
+ host_ids = [server_list[0]['hostId'], server_list[1]['hostId']]
+ self.assertTrue(host_ids[0] and host_ids[1])
+ self.assertNotEqual(host_ids[0], host_ids[1])
+
+ for i, s in enumerate(server_list):
+ self.assertEqual(s['id'], fakes.get_fake_uuid(i))
+ self.assertEqual(s['hostId'], host_ids[i % 2])
+ self.assertEqual(s['name'], 'server%d' % (i + 1))
+
+ def _delete_server_instance(self, uuid=FAKE_UUID):
+ fakes.stub_out_instance_quota(self.stubs, 0, 10)
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % uuid)
+ req.method = 'DELETE'
+
+ self.server_delete_called = False
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+
+ def instance_destroy_mock(*args, **kwargs):
+ self.server_delete_called = True
+ self.stubs.Set(db, 'instance_destroy', instance_destroy_mock)
+
+ self.controller.delete(req, uuid)
+
+ def test_delete_server_instance(self):
+ self._delete_server_instance()
+ self.assertEqual(self.server_delete_called, True)
+
+ def test_delete_server_instance_not_found(self):
+ self.assertRaises(webob.exc.HTTPNotFound,
+ self._delete_server_instance,
+ uuid='non-existent-uuid')
+
+ def test_delete_server_instance_while_building(self):
+ fakes.stub_out_instance_quota(self.stubs, 0, 10)
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'DELETE'
+
+ self.server_delete_called = False
+
+ def instance_destroy_mock(*args, **kwargs):
+ self.server_delete_called = True
+ self.stubs.Set(db, 'instance_destroy', instance_destroy_mock)
+
+ self.controller.delete(req, FAKE_UUID)
+
+ self.assertEqual(self.server_delete_called, True)
+
+ def test_delete_server_instance_while_resize(self):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'DELETE'
+
+ self.server_delete_called = False
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
+ task_state=task_states.RESIZE_PREP))
+
+ def instance_destroy_mock(*args, **kwargs):
+ self.server_delete_called = True
+ self.stubs.Set(db, 'instance_destroy', instance_destroy_mock)
+
+ self.controller.delete(req, FAKE_UUID)
+ # Delete shoud be allowed in any case, even during resizing,
+ # because it may get stuck.
+ self.assertEqual(self.server_delete_called, True)
+
+
+class ServerStatusTest(test.TestCase):
+
+ def setUp(self):
+ super(ServerStatusTest, self).setUp()
+ fakes.stub_out_nw_api(self.stubs)
+
+ ext_info = plugins.LoadedExtensionInfo()
+ self.controller = servers.ServersController(extension_info=ext_info)
+
+ def _get_with_state(self, vm_state, task_state=None):
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_state,
+ task_state=task_state))
+
+ request = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ return self.controller.show(request, FAKE_UUID)
+
+ def test_active(self):
+ response = self._get_with_state(vm_states.ACTIVE)
+ self.assertEqual(response['server']['status'], 'ACTIVE')
+
+ def test_reboot(self):
+ response = self._get_with_state(vm_states.ACTIVE,
+ task_states.REBOOTING)
+ self.assertEqual(response['server']['status'], 'REBOOT')
+
+ def test_reboot_hard(self):
+ response = self._get_with_state(vm_states.ACTIVE,
+ task_states.REBOOTING_HARD)
+ self.assertEqual(response['server']['status'], 'HARD_REBOOT')
+
+ def test_reboot_resize_policy_fail(self):
+ def fake_get_server(context, req, id):
+ return fakes.stub_instance(id)
+
+ self.stubs.Set(self.controller, '_get_server', fake_get_server)
+
+ rule = {'compute:reboot':
+ common_policy.parse_rule('role:admin')}
+ common_policy.set_rules(common_policy.Rules(rule))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/1234/action')
+ self.assertRaises(exception.PolicyNotAuthorized,
+ self.controller._action_reboot, req, '1234',
+ {'reboot': {'type': 'HARD'}})
+
+ def test_rebuild(self):
+ response = self._get_with_state(vm_states.ACTIVE,
+ task_states.REBUILDING)
+ self.assertEqual(response['server']['status'], 'REBUILD')
+
+ def test_rebuild_error(self):
+ response = self._get_with_state(vm_states.ERROR)
+ self.assertEqual(response['server']['status'], 'ERROR')
+
+ def test_resize(self):
+ response = self._get_with_state(vm_states.ACTIVE,
+ task_states.RESIZE_PREP)
+ self.assertEqual(response['server']['status'], 'RESIZE')
+
+ def test_confirm_resize_policy_fail(self):
+ def fake_get_server(context, req, id):
+ return fakes.stub_instance(id)
+
+ self.stubs.Set(self.controller, '_get_server', fake_get_server)
+
+ rule = {'compute:confirm_resize':
+ common_policy.parse_rule('role:admin')}
+ common_policy.set_rules(common_policy.Rules(rule))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/1234/action')
+ self.assertRaises(exception.PolicyNotAuthorized,
+ self.controller._action_confirm_resize, req, '1234', {})
+
+ def test_verify_resize(self):
+ response = self._get_with_state(vm_states.RESIZED, None)
+ self.assertEqual(response['server']['status'], 'VERIFY_RESIZE')
+
+ def test_revert_resize(self):
+ response = self._get_with_state(vm_states.RESIZED,
+ task_states.RESIZE_REVERTING)
+ self.assertEqual(response['server']['status'], 'REVERT_RESIZE')
+
+ def test_revert_resize_policy_fail(self):
+ def fake_get_server(context, req, id):
+ return fakes.stub_instance(id)
+
+ self.stubs.Set(self.controller, '_get_server', fake_get_server)
+
+ rule = {'compute:revert_resize':
+ common_policy.parse_rule('role:admin')}
+ common_policy.set_rules(common_policy.Rules(rule))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/1234/action')
+ self.assertRaises(exception.PolicyNotAuthorized,
+ self.controller._action_revert_resize, req, '1234', {})
+
+ def test_password_update(self):
+ response = self._get_with_state(vm_states.ACTIVE,
+ task_states.UPDATING_PASSWORD)
+ self.assertEqual(response['server']['status'], 'PASSWORD')
+
+ def test_stopped(self):
+ response = self._get_with_state(vm_states.STOPPED)
+ self.assertEqual(response['server']['status'], 'SHUTOFF')
+
+
+class ServersControllerCreateTest(test.TestCase):
+
+ def setUp(self):
+ """Shared implementation for tests below that create instance."""
+ super(ServersControllerCreateTest, self).setUp()
+
+ self.flags(verbose=True,
+ enable_instance_password=True)
+ self.instance_cache_num = 0
+ self.instance_cache_by_id = {}
+ self.instance_cache_by_uuid = {}
+
+ ext_info = plugins.LoadedExtensionInfo()
+ self.controller = servers.ServersController(extension_info=ext_info)
+
+ def instance_create(context, inst):
+ inst_type = flavors.get_flavor_by_flavor_id(3)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ def_image_ref = 'http://localhost/images/%s' % image_uuid
+ self.instance_cache_num += 1
+ instance = {
+ 'id': self.instance_cache_num,
+ 'display_name': inst['display_name'] or 'test',
+ 'uuid': FAKE_UUID,
+ 'instance_type': dict(inst_type),
+ 'access_ip_v4': '1.2.3.4',
+ 'access_ip_v6': 'fead::1234',
+ 'image_ref': inst.get('image_ref', def_image_ref),
+ 'user_id': 'fake',
+ 'project_id': 'fake',
+ 'reservation_id': inst['reservation_id'],
+ "created_at": datetime.datetime(2010, 10, 10, 12, 0, 0),
+ "updated_at": datetime.datetime(2010, 11, 11, 11, 0, 0),
+ "config_drive": None,
+ "progress": 0,
+ "fixed_ips": [],
+ "task_state": "",
+ "vm_state": "",
+ }
+
+ self.instance_cache_by_id[instance['id']] = instance
+ self.instance_cache_by_uuid[instance['uuid']] = instance
+ return instance
+
+ def instance_get(context, instance_id):
+ """Stub for compute/api create() pulling in instance after
+ scheduling
+ """
+ return self.instance_cache_by_id[instance_id]
+
+ def instance_update(context, uuid, values):
+ instance = self.instance_cache_by_uuid[uuid]
+ instance.update(values)
+ return instance
+
+ def rpc_call_wrapper(context, topic, msg, timeout=None):
+ """Stub out the scheduler creating the instance entry."""
+ if (topic == CONF.scheduler_topic and
+ msg['method'] == 'run_instance'):
+ request_spec = msg['args']['request_spec']
+ num_instances = request_spec.get('num_instances', 1)
+ instances = []
+ for x in xrange(num_instances):
+ instances.append(instance_create(context,
+ request_spec['instance_properties']))
+ return instances
+
+ def server_update(context, instance_uuid, params):
+ inst = self.instance_cache_by_uuid[instance_uuid]
+ inst.update(params)
+ return (inst, inst)
+
+ def fake_method(*args, **kwargs):
+ pass
+
+ def project_get_networks(context, user_id):
+ return dict(id='1', host='localhost')
+
+ def queue_get_for(context, *args):
+ return 'network_topic'
+
+ fakes.stub_out_rate_limiting(self.stubs)
+ fakes.stub_out_key_pair_funcs(self.stubs)
+ fake.stub_out_image_service(self.stubs)
+ fakes.stub_out_nw_api(self.stubs)
+ self.stubs.Set(uuid, 'uuid4', fake_gen_uuid)
+ self.stubs.Set(db, 'instance_add_security_group',
+ return_security_group)
+ self.stubs.Set(db, 'project_get_networks',
+ project_get_networks)
+ self.stubs.Set(db, 'instance_create', instance_create)
+ self.stubs.Set(db, 'instance_system_metadata_update',
+ fake_method)
+ self.stubs.Set(db, 'instance_get', instance_get)
+ self.stubs.Set(db, 'instance_update', instance_update)
+ self.stubs.Set(rpc, 'cast', fake_method)
+ self.stubs.Set(rpc, 'call', rpc_call_wrapper)
+ self.stubs.Set(db, 'instance_update_and_get_original',
+ server_update)
+ self.stubs.Set(rpc, 'queue_get_for', queue_get_for)
+ self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip',
+ fake_method)
+
+ def _check_admin_pass_len(self, server_dict):
+ """utility function - check server_dict for adminPass length."""
+ self.assertEqual(CONF.password_length,
+ len(server_dict["adminPass"]))
+
+ def _check_admin_pass_missing(self, server_dict):
+ """utility function - check server_dict for absence of adminPass."""
+ self.assertTrue("adminPass" not in server_dict)
+
+ def _test_create_instance(self):
+ image_uuid = 'c905cedb-7281-47e4-8a62-f26bc5fc4c77'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_uuid, flavorRef=2,
+ metadata={'hello': 'world', 'open': 'stack'},
+ personality={}))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ server = self.controller.create(req, body).obj['server']
+
+ self._check_admin_pass_len(server)
+ self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_server_bad_image_href(self):
+ image_href = 1
+ flavor_ref = 'http://localhost/123/flavors/3'
+
+ body = {
+ 'server': {
+ 'min_count': 1,
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ }
+ }
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create,
+ req,
+ body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-networks extension tests
+ # def test_create_server_with_invalid_networks_parameter(self):
+ # self.ext_mgr.extensions = {'os-networks': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+ # body = {
+ # 'server': {
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'networks': {'uuid': '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'},
+ # }
+ # }
+ # req = fakes.HTTPRequest.blank('/v2/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create,
+ # req,
+ # body)
+
+ def test_create_server_with_deleted_image(self):
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # Get the fake image service so we can set the status to deleted
+ (image_service, image_id) = glance.get_remote_image_service(
+ context, '')
+ image_service.update(context, image_uuid, {'status': 'DELETED'})
+ self.addCleanup(image_service.update, context, image_uuid,
+ {'status': 'active'})
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_uuid, flavorRef=2,
+ metadata={'hello': 'world', 'open': 'stack'},
+ personality={}))
+ req.body = jsonutils.dumps(body)
+
+ req.headers["content-type"] = "application/json"
+ with testtools.ExpectedException(
+ webob.exc.HTTPBadRequest,
+ 'Image 76fa36fc-c930-4bf3-8c8a-ea2a2420deb6 is not active.'):
+ self.controller.create(req, body)
+
+ def test_create_server_image_too_large(self):
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+
+ # Get the fake image service so we can set the status to deleted
+ (image_service, image_id) = glance.get_remote_image_service(
+ context, image_uuid)
+
+ image = image_service.show(context, image_id)
+
+ orig_size = image['size']
+ new_size = str(1000 * (1024 ** 3))
+ image_service.update(context, image_uuid, {'size': new_size})
+
+ self.addCleanup(image_service.update, context, image_uuid,
+ {'size': orig_size})
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ body = dict(server=dict(name='server_test',
+ imageRef=image_uuid,
+ flavorRef=2))
+ req.body = jsonutils.dumps(body)
+
+ req.headers["content-type"] = "application/json"
+ with testtools.ExpectedException(
+ webob.exc.HTTPBadRequest,
+ "Instance type's disk is too small for requested image."):
+ self.controller.create(req, body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_instance_invalid_negative_min(self):
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+
+ # body = {
+ # 'server': {
+ # 'min_count': -1,
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # }
+ # }
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create,
+ # req,
+ # body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_instance_invalid_negative_max(self):
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+
+ # body = {
+ # 'server': {
+ # 'max_count': -1,
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # }
+ # }
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create,
+ # req,
+ # body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_instance_invalid_alpha_min(self):
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+
+ # body = {
+ # 'server': {
+ # 'min_count': 'abcd',
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # }
+ # }
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create,
+ # req,
+ # body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_instance_invalid_alpha_max(self):
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+
+ # body = {
+ # 'server': {
+ # 'max_count': 'abcd',
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # }
+ # }
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create,
+ # req,
+ # body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_multiple_instances(self):
+ # """Test creating multiple instances but not asking for
+ # reservation_id
+ # """
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+ # body = {
+ # 'server': {
+ # 'min_count': 2,
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {'hello': 'world',
+ # 'open': 'stack'},
+ # 'personality': []
+ # }
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # res = self.controller.create(req, body).obj
+
+ # self.assertEqual(FAKE_UUID, res["server"]["id"])
+ # self._check_admin_pass_len(res["server"])
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_multiple_instances_pass_disabled(self):
+ # """Test creating multiple instances but not asking for
+ # reservation_id
+ # """
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # self.flags(enable_instance_password=False)
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+ # body = {
+ # 'server': {
+ # 'min_count': 2,
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {'hello': 'world',
+ # 'open': 'stack'},
+ # 'personality': []
+ # }
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # res = self.controller.create(req, body).obj
+
+ # self.assertEqual(FAKE_UUID, res["server"]["id"])
+ # self._check_admin_pass_missing(res["server"])
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_multiple_instances_resv_id_return(self):
+ # """Test creating multiple instances with asking for
+ # reservation_id
+ # """
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+ # body = {
+ # 'server': {
+ # 'min_count': 2,
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {'hello': 'world',
+ # 'open': 'stack'},
+ # 'personality': [],
+ # 'return_reservation_id': True
+ # }
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # res = self.controller.create(req, body)
+
+ # reservation_id = res.obj.get('reservation_id')
+ # self.assertNotEqual(reservation_id, "")
+ # self.assertNotEqual(reservation_id, None)
+ # self.assertTrue(len(reservation_id) > 1)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_multiple_instances_with_multiple_volume_bdm(self):
+ # """
+ # Test that a BadRequest is raised if multiple instances
+ # are requested with a list of block device mappings for volumes.
+ # """
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # min_count = 2
+ # bdm = [{'device_name': 'foo1', 'volume_id': 'vol-xxxx'},
+ # {'device_name': 'foo2', 'volume_id': 'vol-yyyy'}
+ # ]
+ # params = {
+ # 'block_device_mapping': bdm,
+ # 'min_count': min_count
+ # }
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['min_count'], 2)
+ # self.assertEqual(len(kwargs['block_device_mapping']), 2)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra, params, no_image=True)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_multiple_instances_with_single_volume_bdm(self):
+ # """
+ # Test that a BadRequest is raised if multiple instances
+ # are requested to boot from a single volume.
+ # """
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # min_count = 2
+ # bdm = [{'device_name': 'foo1', 'volume_id': 'vol-xxxx'}]
+ # params = {
+ # 'block_device_mapping': bdm,
+ # 'min_count': min_count
+ # }
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['min_count'], 2)
+ # self.assertEqual(kwargs['block_device_mapping']['volume_id'],
+ # 'vol-xxxx')
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra, params, no_image=True)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_multiple_instance_with_non_integer_max_count(self):
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+ # body = {
+ # 'server': {
+ # 'max_count': 2.5,
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {'hello': 'world',
+ # 'open': 'stack'},
+ # 'personality': []
+ # }
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create, req, body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multiple-create extension tests
+ # def test_create_multiple_instance_with_non_integer_min_count(self):
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/123/flavors/3'
+ # body = {
+ # 'server': {
+ # 'min_count': 2.5,
+ # 'name': 'server_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {'hello': 'world',
+ # 'open': 'stack'},
+ # 'personality': []
+ # }
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create, req, body)
+
+ def test_create_instance_image_ref_is_bookmark(self):
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/fake/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/fake/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_instance_image_ref_is_invalid(self):
+ image_uuid = 'this_is_not_a_valid_uuid'
+ image_href = 'http://localhost/fake/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/fake/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
+ req, body)
+
+ def test_create_instance_no_key_pair(self):
+ fakes.stub_out_key_pair_funcs(self.stubs, have_key_pair=False)
+ self._test_create_instance()
+
+ def _test_create_extra(self, params, no_image=False):
+ image_uuid = 'c905cedb-7281-47e4-8a62-f26bc5fc4c77'
+ server = dict(name='server_test', imageRef=image_uuid, flavorRef=2)
+ if no_image:
+ server.pop('imageRef', None)
+ server.update(params)
+ body = dict(server=server)
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ server = self.controller.create(req, body).obj['server']
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-security-groups extension tests
+ # def test_create_instance_with_security_group_enabled(self):
+ # self.ext_mgr.extensions = {'os-security-groups': 'fake'}
+ # group = 'foo'
+ # old_create = compute_api.API.create
+
+ # def sec_group_get(ctx, proj, name):
+ # if name == group:
+ # return True
+ # else:
+ # raise exception.SecurityGroupNotFoundForProject(
+ # project_id=proj, security_group_id=name)
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['security_group'], [group])
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(db, 'security_group_get_by_name', sec_group_get)
+ # # negative test
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra,
+ # {'security_groups': [{'name': 'bogus'}]})
+ # # positive test - extra assert in create path
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra({'security_groups': [{'name': group}]})
+
+ def test_create_instance_with_security_group_disabled(self):
+ group = 'foo'
+ params = {'security_groups': [{'name': group}]}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ # NOTE(vish): if the security groups extension is not
+ # enabled, then security groups passed in
+ # are ignored.
+ self.assertEqual(kwargs['security_group'], ['default'])
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the OS-DCF extension tests
+ # def test_create_instance_with_disk_config_enabled(self):
+ # self.ext_mgr.extensions = {'OS-DCF': 'fake'}
+ # # NOTE(vish): the extension converts OS-DCF:disk_config into
+ # # auto_disk_config, so we are testing with
+ # # the_internal_value
+ # params = {'auto_disk_config': 'AUTO'}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['auto_disk_config'], 'AUTO')
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ def test_create_instance_with_disk_config_disabled(self):
+ params = {'auto_disk_config': True}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['auto_disk_config'], False)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the OS-SCH-HNT extension tests
+ # def test_create_instance_with_scheduler_hints_enabled(self):
+ # self.ext_mgr.extensions = {'OS-SCH-HNT': 'fake'}
+ # hints = {'a': 'b'}
+ # params = {'scheduler_hints': hints}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['scheduler_hints'], hints)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ def test_create_instance_with_scheduler_hints_disabled(self):
+ hints = {'a': 'b'}
+ params = {'scheduler_hints': hints}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['scheduler_hints'], {})
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_volumes_enabled(self):
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # bdm = [{'device_name': 'foo'}]
+ # params = {'block_device_mapping': bdm}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['block_device_mapping'], bdm)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_volumes_enabled_no_image(self):
+ # """
+ # Test that the create will fail if there is no image
+ # and no bdms supplied in the request
+ # """
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertNotIn('imageRef', kwargs)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra, {}, no_image=True)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_volumes_enabled_and_bdms_no_image(self):
+ # """
+ # Test that the create works if there is no image supplied but
+ # os-volumes extension is enabled and bdms are supplied
+ # """
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # bdm = [{'device_name': 'foo'}]
+ # params = {'block_device_mapping': bdm}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['block_device_mapping'], bdm)
+ # self.assertNotIn('imageRef', kwargs)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params, no_image=True)
+
+ def test_create_instance_with_volumes_disabled(self):
+ bdm = [{'device_name': 'foo'}]
+ params = {'block_device_mapping': bdm}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['block_device_mapping'], None)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_device_name_not_string(self):
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # bdm = [{'delete_on_termination': 1,
+ # 'device_name': 123,
+ # 'volume_size': 1,
+ # 'volume_id': '11111111-1111-1111-1111-111111111111'}]
+ # params = {'block_device_mapping': bdm}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['block_device_mapping'], bdm)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra, params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_device_name_empty(self):
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # bdm = [{'delete_on_termination': 1,
+ # 'device_name': '',
+ # 'volume_size': 1,
+ # 'volume_id': '11111111-1111-1111-1111-111111111111'}]
+ # params = {'block_device_mapping': bdm}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['block_device_mapping'], bdm)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra, params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_device_name_too_long(self):
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # bdm = [{'delete_on_termination': 1,
+ # 'device_name': 'a' * 256,
+ # 'volume_size': 1,
+ # 'volume_id': '11111111-1111-1111-1111-111111111111'}]
+ # params = {'block_device_mapping': bdm}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['block_device_mapping'], bdm)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra, params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_space_in_device_name(self):
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # bdm = [{'delete_on_termination': 1,
+ # 'device_name': 'vd a',
+ # 'volume_size': 1,
+ # 'volume_id': '11111111-1111-1111-1111-111111111111'}]
+ # params = {'block_device_mapping': bdm}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['block_device_mapping'], bdm)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self._test_create_extra, params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-volumes extension tests
+ # def test_create_instance_with_bdm_delete_on_termination(self):
+ # self.ext_mgr.extensions = {'os-volumes': 'fake'}
+ # bdm = [{'device_name': 'foo1', 'delete_on_termination': 1},
+ # {'device_name': 'foo2', 'delete_on_termination': True},
+ # {'device_name': 'foo3', 'delete_on_termination': 'invalid'},
+ # {'device_name': 'foo4', 'delete_on_termination': 0},
+ # {'device_name': 'foo5', 'delete_on_termination': False}]
+ # expected_dbm = [
+ # {'device_name': 'foo1', 'delete_on_termination': True},
+ # {'device_name': 'foo2', 'delete_on_termination': True},
+ # {'device_name': 'foo3', 'delete_on_termination': False},
+ # {'device_name': 'foo4', 'delete_on_termination': False},
+ # {'device_name': 'foo5', 'delete_on_termination': False}]
+ # params = {'block_device_mapping': bdm}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['block_device_mapping'], expected_dbm)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-user-data extension tests
+ # def test_create_instance_with_user_data_enabled(self):
+ # self.ext_mgr.extensions = {'os-user-data': 'fake'}
+ # user_data = 'fake'
+ # params = {'user_data': user_data}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['user_data'], user_data)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ def test_create_instance_with_user_data_disabled(self):
+ user_data = 'fake'
+ params = {'user_data': user_data}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['user_data'], None)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-keypairs extension tests
+ # def test_create_instance_with_keypairs_enabled(self):
+ # self.ext_mgr.extensions = {'os-keypairs': 'fake'}
+ # key_name = 'green'
+
+ # params = {'key_name': key_name}
+ # old_create = compute_api.API.create
+
+ # # NOTE(sdague): key pair goes back to the database,
+ # # so we need to stub it out for tests
+ # def key_pair_get(context, user_id, name):
+ # return {'public_key': 'FAKE_KEY',
+ # 'fingerprint': 'FAKE_FINGERPRINT',
+ # 'name': name}
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['key_name'], key_name)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(db, 'key_pair_get', key_pair_get)
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-availability-zone extension tests
+ # def test_create_instance_with_availability_zone_enabled(self):
+ # self.ext_mgr.extensions = {'os-availability-zone': 'fake'}
+ # availability_zone = 'fake'
+ # params = {'availability_zone': availability_zone}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['availability_zone'], availability_zone)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ def test_create_instance_with_availability_zone_disabled(self):
+ availability_zone = 'fake'
+ params = {'availability_zone': availability_zone}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['availability_zone'], None)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-multi-create extension tests
+ # def test_create_instance_with_multiple_create_enabled(self):
+ # self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
+ # min_count = 2
+ # max_count = 3
+ # params = {
+ # 'min_count': min_count,
+ # 'max_count': max_count,
+ # }
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # self.assertEqual(kwargs['min_count'], 2)
+ # self.assertEqual(kwargs['max_count'], 3)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ def test_create_instance_with_multiple_create_disabled(self):
+ ret_res_id = True
+ min_count = 2
+ max_count = 3
+ params = {
+ 'min_count': min_count,
+ 'max_count': max_count,
+ }
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['min_count'], 1)
+ self.assertEqual(kwargs['max_count'], 1)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-networks extension tests
+ # def test_create_instance_with_networks_enabled(self):
+ # self.ext_mgr.extensions = {'os-networks': 'fake'}
+ # net_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # requested_networks = [{'uuid': net_uuid}]
+ # params = {'networks': requested_networks}
+ # old_create = compute_api.API.create
+
+ # def create(*args, **kwargs):
+ # result = [('76fa36fc-c930-4bf3-8c8a-ea2a2420deb6', None)]
+ # self.assertEqual(kwargs['requested_networks'], result)
+ # return old_create(*args, **kwargs)
+
+ # self.stubs.Set(compute_api.API, 'create', create)
+ # self._test_create_extra(params)
+
+ def test_create_instance_with_networks_disabled_quantumv2(self):
+ self.flags(network_api_class='nova.network.quantumv2.api.API')
+ net_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ requested_networks = [{'uuid': net_uuid}]
+ params = {'networks': requested_networks}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ result = [('76fa36fc-c930-4bf3-8c8a-ea2a2420deb6', None,
+ None)]
+ self.assertEqual(kwargs['requested_networks'], result)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ def test_create_instance_with_networks_disabled(self):
+ net_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ requested_networks = [{'uuid': net_uuid}]
+ params = {'networks': requested_networks}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['requested_networks'], None)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ def test_create_instance_with_access_ip(self):
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/fake/flavors/3'
+ access_ipv4 = '1.2.3.4'
+ access_ipv6 = 'fead::1234'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self._check_admin_pass_len(server)
+ self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_instance_with_access_ip_pass_disabled(self):
+ # test with admin passwords disabled See lp bug 921814
+ self.flags(enable_instance_password=False)
+
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/fake/flavors/3'
+ access_ipv4 = '1.2.3.4'
+ access_ipv6 = 'fead::1234'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self._check_admin_pass_missing(server)
+ self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_instance_bad_format_access_ip_v4(self):
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/fake/flavors/3'
+ access_ipv4 = 'bad_format'
+ access_ipv6 = 'fead::1234'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
+ req, body)
+
+ def test_create_instance_bad_format_access_ip_v6(self):
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/fake/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/fake/flavors/3'
+ access_ipv4 = '1.2.3.4'
+ access_ipv6 = 'bad_format'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'accessIPv4': access_ipv4,
+ 'accessIPv6': access_ipv6,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
+ req, body)
+
+ def test_create_instance_name_too_long(self):
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'X' * 256,
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
+ req, body)
+
+ def test_create_instance(self):
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self._check_admin_pass_len(server)
+ self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_instance_pass_disabled(self):
+ self.flags(enable_instance_password=False)
+ # proper local hrefs must start with 'http://localhost/v3/'
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self._check_admin_pass_missing(server)
+ self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_instance_too_much_metadata(self):
+ self.flags(quota_metadata_items=1)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ 'vote': 'fiddletown',
+ },
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
+ self.controller.create, req, body)
+
+ def test_create_instance_metadata_key_too_long(self):
+ self.flags(quota_metadata_items=1)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ ('a' * 260): '12345',
+ },
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
+ self.controller.create, req, body)
+
+ def test_create_instance_metadata_value_too_long(self):
+ self.flags(quota_metadata_items=1)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ 'key1': ('a' * 260),
+ },
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
+ self.controller.create, req, body)
+
+ def test_create_instance_metadata_key_blank(self):
+ self.flags(quota_metadata_items=1)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ '': '12345',
+ },
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create, req, body)
+
+ def test_create_instance_invalid_key_name(self):
+ image_href = 'http://localhost/v3/images/2'
+ flavor_ref = 'http://localhost/flavors/3'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_href, flavorRef=flavor_ref,
+ key_name='nonexistentkey'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create, req, body)
+
+ def test_create_instance_valid_key_name(self):
+ image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ flavor_ref = 'http://localhost/flavors/3'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_href, flavorRef=flavor_ref,
+ key_name='key'))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ self.assertEqual(FAKE_UUID, res["server"]["id"])
+ self._check_admin_pass_len(res["server"])
+
+ def test_create_instance_invalid_flavor_href(self):
+ image_href = 'http://localhost/v3/images/2'
+ flavor_ref = 'http://localhost/v3/flavors/asdf'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_href, flavorRef=flavor_ref,
+ metadata={'hello': 'world', 'open': 'stack'},
+ personality={}))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create, req, body)
+
+ def test_create_instance_invalid_flavor_id_int(self):
+ image_href = 'http://localhost/v3/fake/images/2'
+ flavor_ref = -1
+ body = dict(server=dict(
+ name='server_test', imageRef=image_href, flavorRef=flavor_ref,
+ metadata={'hello': 'world', 'open': 'stack'},
+ personality={}))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create, req, body)
+
+ def test_create_instance_bad_flavor_href(self):
+ image_href = 'http://localhost/v3/images/2'
+ flavor_ref = 'http://localhost/v3/flavors/17'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_href, flavorRef=flavor_ref,
+ metadata={'hello': 'world', 'open': 'stack'},
+ personality={}))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create, req, body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-config-drive extension tests
+ # def test_create_instance_with_config_drive(self):
+ # self.ext_mgr.extensions = {'os-config-drive': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/v3/fake/flavors/3'
+ # body = {
+ # 'server': {
+ # 'name': 'config_drive_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {
+ # 'hello': 'world',
+ # 'open': 'stack',
+ # },
+ # 'personality': {},
+ # 'config_drive': "true",
+ # },
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # res = self.controller.create(req, body).obj
+
+ # server = res['server']
+ # self.assertEqual(FAKE_UUID, server['id'])
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-config-drive extension tests
+ # def test_create_instance_with_config_drive_as_id(self):
+ # self.ext_mgr.extensions = {'os-config-drive': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/v3/fake/flavors/3'
+ # body = {
+ # 'server': {
+ # 'name': 'config_drive_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {
+ # 'hello': 'world',
+ # 'open': 'stack',
+ # },
+ # 'personality': {},
+ # 'config_drive': image_href,
+ # },
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # res = self.controller.create(req, body).obj
+
+ # server = res['server']
+ # self.assertEqual(FAKE_UUID, server['id'])
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-config-drive extension tests
+ # def test_create_instance_with_bad_config_drive(self):
+ # self.ext_mgr.extensions = {'os-config-drive': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/v3/fake/flavors/3'
+ # body = {
+ # 'server': {
+ # 'name': 'config_drive_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {
+ # 'hello': 'world',
+ # 'open': 'stack',
+ # },
+ # 'personality': {},
+ # 'config_drive': 'asdf',
+ # },
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+
+ # self.assertRaises(webob.exc.HTTPBadRequest,
+ # self.controller.create, req, body)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-config-drive extension tests
+ # def test_create_instance_without_config_drive(self):
+ # self.ext_mgr.extensions = {'os-config-drive': 'fake'}
+ # image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ # flavor_ref = 'http://localhost/v3/fake/flavors/3'
+ # body = {
+ # 'server': {
+ # 'name': 'config_drive_test',
+ # 'imageRef': image_href,
+ # 'flavorRef': flavor_ref,
+ # 'metadata': {
+ # 'hello': 'world',
+ # 'open': 'stack',
+ # },
+ # 'personality': {},
+ # },
+ # }
+
+ # req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ # req.method = 'POST'
+ # req.body = jsonutils.dumps(body)
+ # req.headers["content-type"] = "application/json"
+ # res = self.controller.create(req, body).obj
+
+ # server = res['server']
+ # self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_instance_with_config_drive_disabled(self):
+ config_drive = [{'config_drive': 'foo'}]
+ params = {'config_drive': config_drive}
+ old_create = compute_api.API.create
+
+ def create(*args, **kwargs):
+ self.assertEqual(kwargs['config_drive'], None)
+ return old_create(*args, **kwargs)
+
+ self.stubs.Set(compute_api.API, 'create', create)
+ self._test_create_extra(params)
+
+ def test_create_instance_bad_href(self):
+ image_href = 'asdf'
+ flavor_ref = 'http://localhost/v3/flavors/3'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_href, flavorRef=flavor_ref,
+ metadata={'hello': 'world', 'open': 'stack'},
+ personality={}))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create, req, body)
+
+ def test_create_instance_local_href(self):
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ flavor_ref = 'http://localhost/v3/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_uuid,
+ 'flavorRef': flavor_ref,
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self.assertEqual(FAKE_UUID, server['id'])
+
+ def test_create_instance_admin_pass(self):
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_uuid,
+ 'flavorRef': 3,
+ 'adminPass': 'testpass',
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['content-type'] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self.assertEqual(server['adminPass'], body['server']['adminPass'])
+
+ def test_create_instance_admin_pass_pass_disabled(self):
+ self.flags(enable_instance_password=False)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_uuid,
+ 'flavorRef': 3,
+ 'adminPass': 'testpass',
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['content-type'] = "application/json"
+ res = self.controller.create(req, body).obj
+
+ server = res['server']
+ self.assertTrue('adminPass' in body['server'])
+ self.assertTrue('adminPass' not in server)
+
+ def test_create_instance_admin_pass_empty(self):
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_uuid,
+ 'flavorRef': 3,
+ 'adminPass': '',
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['content-type'] = "application/json"
+
+ # The fact that the action doesn't raise is enough validation
+ self.controller.create(req, body)
+
+ def test_create_instance_invalid_personality(self):
+
+ def fake_create(*args, **kwargs):
+ codec = 'utf8'
+ content = 'b25zLiINCg0KLVJpY2hhcmQgQ$$%QQmFjaA=='
+ start_position = 19
+ end_position = 20
+ msg = 'invalid start byte'
+ raise UnicodeDecodeError(codec, content, start_position,
+ end_position, msg)
+
+ self.stubs.Set(compute_api.API,
+ 'create',
+ fake_create)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ flavor_ref = 'http://localhost/v3/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_uuid,
+ 'flavorRef': flavor_ref,
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "b25zLiINCg0KLVJpY2hhcmQgQ$$%QQmFjaA==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create, req, body)
+
+ def test_create_location(self):
+ selfhref = 'http://localhost/v3/fake/servers/%s' % FAKE_UUID
+ bookhref = 'http://localhost/fake/servers/%s' % FAKE_UUID
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v3/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ },
+ 'personality': [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "MQ==",
+ },
+ ],
+ },
+ }
+
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers['content-type'] = 'application/json'
+ robj = self.controller.create(req, body)
+
+ self.assertEqual(robj['Location'], selfhref)
+
+ def _do_test_create_instance_above_quota(self, resource, allowed, quota,
+ expected_msg):
+ fakes.stub_out_instance_quota(self.stubs, allowed, quota, resource)
+ image_uuid = 'c905cedb-7281-47e4-8a62-f26bc5fc4c77'
+ body = dict(server=dict(
+ name='server_test', imageRef=image_uuid, flavorRef=3,
+ metadata={'hello': 'world', 'open': 'stack'},
+ personality={}))
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ try:
+ server = self.controller.create(req, body).obj['server']
+ self.fail('expected quota to be exceeded')
+ except webob.exc.HTTPRequestEntityTooLarge as e:
+ self.assertEquals(e.explanation, expected_msg)
+
+ def test_create_instance_above_quota_instances(self):
+ msg = _('Quota exceeded for instances: Requested 1, but'
+ ' already used 10 of 10 instances')
+ self._do_test_create_instance_above_quota('instances', 0, 10, msg)
+
+ def test_create_instance_above_quota_ram(self):
+ msg = _('Quota exceeded for ram: Requested 4096, but'
+ ' already used 8192 of 10240 ram')
+ self._do_test_create_instance_above_quota('ram', 2048, 10 * 1024, msg)
+
+ def test_create_instance_above_quota_cores(self):
+ msg = _('Quota exceeded for cores: Requested 2, but'
+ ' already used 9 of 10 cores')
+ self._do_test_create_instance_above_quota('cores', 1, 10, msg)
+
+
+class TestServerCreateRequestXMLDeserializer(test.TestCase):
+
+ def setUp(self):
+ super(TestServerCreateRequestXMLDeserializer, self).setUp()
+ self.deserializer = servers.CreateDeserializer()
+
+ def test_minimal_request(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2"/>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_alternate_namespace_prefix(self):
+ serial_request = """
+<ns2:server xmlns:ns2="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2">
+ <ns2:metadata><ns2:meta key="hello">world</ns2:meta></ns2:metadata>
+ </ns2:server>
+ """
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ 'metadata': {"hello": "world"},
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the scheduler hints extension tests
+# def test_request_with_scheduler_hints_and_alternate_namespace_prefix(self):
+# serial_request = """
+# <ns2:server xmlns:ns2="http://docs.openstack.org/compute/api/v2"
+# name="new-server-test"
+# imageRef="1"
+# flavorRef="2">
+# <ns2:metadata><ns2:meta key="hello">world</ns2:meta></ns2:metadata>
+# <os:scheduler_hints
+# xmlns:os="http://docs.openstack.org/compute/ext/scheduler-hints/api/v2">
+# <hypervisor>xen</hypervisor>
+# <near>eb999657-dd6b-464e-8713-95c532ac3b18</near>
+# </os:scheduler_hints>
+# </ns2:server>
+# """
+# request = self.deserializer.deserialize(serial_request)
+# expected = {
+# "server": {
+# 'OS-SCH-HNT:scheduler_hints': {
+# 'hypervisor': ['xen'],
+# 'near': ['eb999657-dd6b-464e-8713-95c532ac3b18']
+# },
+# "name": "new-server-test",
+# "imageRef": "1",
+# "flavorRef": "2",
+# "metadata": {
+# "hello": "world"
+# }
+# }
+# }
+# self.assertEquals(request['body'], expected)
+
+ def test_access_ipv4(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2"
+ accessIPv4="1.2.3.4"/>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ "accessIPv4": "1.2.3.4",
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_access_ipv6(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2"
+ accessIPv6="fead::1234"/>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ "accessIPv6": "fead::1234",
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_access_ip(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2"
+ accessIPv4="1.2.3.4"
+ accessIPv6="fead::1234"/>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_admin_pass(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2"
+ adminPass="1234"/>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ "adminPass": "1234",
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_image_link(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="http://localhost:8774/v3/images/2"
+ flavorRef="3"/>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "http://localhost:8774/v3/images/2",
+ "flavorRef": "3",
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_flavor_link(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="http://localhost:8774/v3/flavors/3"/>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "http://localhost:8774/v3/flavors/3",
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_empty_metadata_personality(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2">
+ <metadata/>
+ <personality/>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ "metadata": {},
+ "personality": [],
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_multiple_metadata_items(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2">
+ <metadata>
+ <meta key="one">two</meta>
+ <meta key="open">snack</meta>
+ </metadata>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ "metadata": {"one": "two", "open": "snack"},
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_multiple_personality_files(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test"
+ imageRef="1"
+ flavorRef="2">
+ <personality>
+ <file path="/etc/banner.txt">MQ==</file>
+ <file path="/etc/hosts">Mg==</file>
+ </personality>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "2",
+ "personality": [
+ {"path": "/etc/banner.txt", "contents": "MQ=="},
+ {"path": "/etc/hosts", "contents": "Mg=="},
+ ],
+ },
+ }
+ self.assertThat(request['body'], matchers.DictMatches(expected))
+
+ def test_spec_request(self):
+ image_bookmark_link = ("http://servers.api.openstack.org/1234/"
+ "images/52415800-8b69-11e0-9b19-734f6f006e54")
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ imageRef="%s"
+ flavorRef="52415800-8b69-11e0-9b19-734f1195ff37"
+ name="new-server-test">
+ <metadata>
+ <meta key="My Server Name">Apache1</meta>
+ </metadata>
+ <personality>
+ <file path="/etc/banner.txt">Mg==</file>
+ </personality>
+</server>""" % (image_bookmark_link)
+ request = self.deserializer.deserialize(serial_request)
+ expected = {
+ "server": {
+ "name": "new-server-test",
+ "imageRef": ("http://servers.api.openstack.org/1234/"
+ "images/52415800-8b69-11e0-9b19-734f6f006e54"),
+ "flavorRef": "52415800-8b69-11e0-9b19-734f1195ff37",
+ "metadata": {"My Server Name": "Apache1"},
+ "personality": [
+ {
+ "path": "/etc/banner.txt",
+ "contents": "Mg==",
+ },
+ ],
+ },
+ }
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_empty_networks(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks/>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_one_network(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network uuid="1" fixed_ip="10.0.1.12"/>
+ </networks>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"uuid": "1", "fixed_ip": "10.0.1.12"}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_two_networks(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network uuid="1" fixed_ip="10.0.1.12"/>
+ <network uuid="2" fixed_ip="10.0.2.12"/>
+ </networks>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"uuid": "1", "fixed_ip": "10.0.1.12"},
+ {"uuid": "2", "fixed_ip": "10.0.2.12"}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_second_network_node_ignored(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network uuid="1" fixed_ip="10.0.1.12"/>
+ </networks>
+ <networks>
+ <network uuid="2" fixed_ip="10.0.2.12"/>
+ </networks>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"uuid": "1", "fixed_ip": "10.0.1.12"}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_one_network_missing_id(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network fixed_ip="10.0.1.12"/>
+ </networks>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"fixed_ip": "10.0.1.12"}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_one_network_missing_fixed_ip(self):
+ serial_request = """
+<server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network uuid="1"/>
+ </networks>
+</server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"uuid": "1"}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_one_network_empty_id(self):
+ serial_request = """
+ <server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network uuid="" fixed_ip="10.0.1.12"/>
+ </networks>
+ </server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"uuid": "", "fixed_ip": "10.0.1.12"}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_one_network_empty_fixed_ip(self):
+ serial_request = """
+ <server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network uuid="1" fixed_ip=""/>
+ </networks>
+ </server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"uuid": "1", "fixed_ip": ""}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_networks_duplicate_ids(self):
+ serial_request = """
+ <server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <networks>
+ <network uuid="1" fixed_ip="10.0.1.12"/>
+ <network uuid="1" fixed_ip="10.0.2.12"/>
+ </networks>
+ </server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "networks": [{"uuid": "1", "fixed_ip": "10.0.1.12"},
+ {"uuid": "1", "fixed_ip": "10.0.2.12"}],
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_availability_zone(self):
+ serial_request = """
+ <server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1"
+ availability_zone="some_zone:some_host">
+ </server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "availability_zone": "some_zone:some_host",
+ }}
+ self.assertEquals(request['body'], expected)
+
+ def test_request_with_multiple_create_args(self):
+ serial_request = """
+ <server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1"
+ min_count="1" max_count="3" return_reservation_id="True">
+ </server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "min_count": "1",
+ "max_count": "3",
+ "return_reservation_id": True,
+ }}
+ self.assertEquals(request['body'], expected)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the OS-DCF extension tests
+ # def test_request_with_disk_config(self):
+ # serial_request = """
+ # <server xmlns="http://docs.openstack.org/compute/api/v2"
+ # xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1"
+ # name="new-server-test" imageRef="1" flavorRef="1"
+ # OS-DCF:diskConfig="AUTO">
+ # </server>"""
+ # request = self.deserializer.deserialize(serial_request)
+ # expected = {"server": {
+ # "name": "new-server-test",
+ # "imageRef": "1",
+ # "flavorRef": "1",
+ # "OS-DCF:diskConfig": "AUTO",
+ # }}
+ # self.assertEquals(request['body'], expected)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the scheduler hints extension tests
+ # def test_request_with_scheduler_hints(self):
+ # serial_request = """
+ # <server xmlns="http://docs.openstack.org/compute/api/v2"
+ # xmlns:OS-SCH-HNT=
+ # "http://docs.openstack.org/compute/ext/scheduler-hints/api/v2"
+ # name="new-server-test" imageRef="1" flavorRef="1">
+ # <OS-SCH-HNT:scheduler_hints>
+ # <different_host>
+ # 7329b667-50c7-46a6-b913-cb2a09dfeee0
+ # </different_host>
+ # <different_host>
+ # f31efb24-34d2-43e1-8b44-316052956a39
+ # </different_host>
+ # </OS-SCH-HNT:scheduler_hints>
+ # </server>"""
+ # request = self.deserializer.deserialize(serial_request)
+ # expected = {"server": {
+ # "name": "new-server-test",
+ # "imageRef": "1",
+ # "flavorRef": "1",
+ # "OS-SCH-HNT:scheduler_hints": {
+ # "different_host": [
+ # "7329b667-50c7-46a6-b913-cb2a09dfeee0",
+ # "f31efb24-34d2-43e1-8b44-316052956a39",
+ # ]
+ # }
+ # }}
+ # self.assertEquals(request['body'], expected)
+
+ def test_request_with_block_device_mapping(self):
+ serial_request = """
+ <server xmlns="http://docs.openstack.org/compute/api/v2"
+ name="new-server-test" imageRef="1" flavorRef="1">
+ <block_device_mapping>
+ <mapping volume_id="7329b667-50c7-46a6-b913-cb2a09dfeee0"
+ device_name="/dev/vda" virtual_name="root"
+ delete_on_termination="False" />
+ <mapping snapshot_id="f31efb24-34d2-43e1-8b44-316052956a39"
+ device_name="/dev/vdb" virtual_name="ephemeral0"
+ delete_on_termination="False" />
+ <mapping device_name="/dev/vdc" no_device="True" />
+ </block_device_mapping>
+ </server>"""
+ request = self.deserializer.deserialize(serial_request)
+ expected = {"server": {
+ "name": "new-server-test",
+ "imageRef": "1",
+ "flavorRef": "1",
+ "block_device_mapping": [
+ {
+ "volume_id": "7329b667-50c7-46a6-b913-cb2a09dfeee0",
+ "device_name": "/dev/vda",
+ "virtual_name": "root",
+ "delete_on_termination": False,
+ },
+ {
+ "snapshot_id": "f31efb24-34d2-43e1-8b44-316052956a39",
+ "device_name": "/dev/vdb",
+ "virtual_name": "ephemeral0",
+ "delete_on_termination": False,
+ },
+ {
+ "device_name": "/dev/vdc",
+ "no_device": True,
+ },
+ ]
+ }}
+ self.assertEquals(request['body'], expected)
+
+ # TODO(cyeoh): bp-v3-api-unittests
+ # This needs to be ported to the os-config-drive extension tests
+ # def test_request_with_config_drive(self):
+ # serial_request = """
+ # <server xmlns="http://docs.openstack.org/compute/api/v2"
+ # name="config_drive_test"
+ # imageRef="1"
+ # flavorRef="1"
+ # config_drive="true"/>"""
+ # request = self.deserializer.deserialize(serial_request)
+ # expected = {
+ # "server": {
+ # "name": "config_drive_test",
+ # "imageRef": "1",
+ # "flavorRef": "1",
+ # "config_drive": "true"
+ # },
+ # }
+ # self.assertEquals(request['body'], expected)
+
+ def test_corrupt_xml(self):
+ """Should throw a 400 error on corrupt xml."""
+ self.assertRaises(
+ exception.MalformedRequestBody,
+ self.deserializer.deserialize,
+ utils.killer_xml_body())
+
+
+# TODO(cyeoh): bp-v3-api-unittests
+# This needs to be ported to the OS-DCF extension tests
+# class TestServerActionRequestXMLDeserializer(test.TestCase):
+
+# def setUp(self):
+# super(TestServerActionRequestXMLDeserializer, self).setUp()
+# self.deserializer = servers.ActionDeserializer()
+
+# def test_rebuild_request(self):
+# serial_request = """
+# <rebuild xmlns="http://docs.openstack.org/compute/api/v1.1"
+# xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1"
+# OS-DCF:diskConfig="MANUAL" imageRef="1"/>"""
+# request = self.deserializer.deserialize(serial_request)
+# expected = {
+# "rebuild": {
+# "imageRef": "1",
+# "OS-DCF:diskConfig": "MANUAL",
+# },
+# }
+# self.assertEquals(request['body'], expected)
+
+# def test_rebuild_request_auto_disk_config_compat(self):
+# serial_request = """
+# <rebuild xmlns="http://docs.openstack.org/compute/api/v1.1"
+# xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1"
+# auto_disk_config="MANUAL" imageRef="1"/>"""
+# request = self.deserializer.deserialize(serial_request)
+# expected = {
+# "rebuild": {
+# "imageRef": "1",
+# "OS-DCF:diskConfig": "MANUAL",
+# },
+# }
+# self.assertEquals(request['body'], expected)
+
+# def test_resize_request(self):
+# serial_request = """
+# <resize xmlns="http://docs.openstack.org/compute/api/v1.1"
+# xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1"
+# OS-DCF:diskConfig="MANUAL" flavorRef="1"/>"""
+# request = self.deserializer.deserialize(serial_request)
+# expected = {
+# "resize": {
+# "flavorRef": "1",
+# "OS-DCF:diskConfig": "MANUAL",
+# },
+# }
+# self.assertEquals(request['body'], expected)
+
+# def test_resize_request_auto_disk_config_compat(self):
+# serial_request = """
+# <resize xmlns="http://docs.openstack.org/compute/api/v1.1"
+# xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1"
+# auto_disk_config="MANUAL" flavorRef="1"/>"""
+# request = self.deserializer.deserialize(serial_request)
+# expected = {
+# "resize": {
+# "flavorRef": "1",
+# "OS-DCF:diskConfig": "MANUAL",
+# },
+# }
+# self.assertEquals(request['body'], expected)
+
+
+class TestAddressesXMLSerialization(test.TestCase):
+
+ index_serializer = ips.AddressesTemplate()
+ show_serializer = ips.NetworkTemplate()
+
+ def test_xml_declaration(self):
+ fixture = {
+ 'network_2': [
+ {'addr': '192.168.0.1', 'version': 4},
+ {'addr': 'fe80::beef', 'version': 6},
+ ],
+ }
+ output = self.show_serializer.serialize(fixture)
+ has_dec = output.startswith("<?xml version='1.0' encoding='UTF-8'?>")
+ self.assertTrue(has_dec)
+
+ def test_show(self):
+ fixture = {
+ 'network_2': [
+ {'addr': '192.168.0.1', 'version': 4},
+ {'addr': 'fe80::beef', 'version': 6},
+ ],
+ }
+ output = self.show_serializer.serialize(fixture)
+ root = etree.XML(output)
+ network = fixture['network_2']
+ self.assertEqual(str(root.get('id')), 'network_2')
+ ip_elems = root.findall('{0}ip'.format(NS))
+ for z, ip_elem in enumerate(ip_elems):
+ ip = network[z]
+ self.assertEqual(str(ip_elem.get('version')),
+ str(ip['version']))
+ self.assertEqual(str(ip_elem.get('addr')),
+ str(ip['addr']))
+
+ def test_index(self):
+ fixture = {
+ 'addresses': {
+ 'network_1': [
+ {'addr': '192.168.0.3', 'version': 4},
+ {'addr': '192.168.0.5', 'version': 4},
+ ],
+ 'network_2': [
+ {'addr': '192.168.0.1', 'version': 4},
+ {'addr': 'fe80::beef', 'version': 6},
+ ],
+ },
+ }
+ output = self.index_serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'addresses')
+ addresses_dict = fixture['addresses']
+ network_elems = root.findall('{0}network'.format(NS))
+ self.assertEqual(len(network_elems), 2)
+ for i, network_elem in enumerate(network_elems):
+ network = addresses_dict.items()[i]
+ self.assertEqual(str(network_elem.get('id')), str(network[0]))
+ ip_elems = network_elem.findall('{0}ip'.format(NS))
+ for z, ip_elem in enumerate(ip_elems):
+ ip = network[1][z]
+ self.assertEqual(str(ip_elem.get('version')),
+ str(ip['version']))
+ self.assertEqual(str(ip_elem.get('addr')),
+ str(ip['addr']))
+
+
+class ServersViewBuilderTest(test.TestCase):
+
+ def setUp(self):
+ super(ServersViewBuilderTest, self).setUp()
+ self.flags(use_ipv6=True)
+ self.instance = fakes.stub_instance(
+ id=1,
+ image_ref="5",
+ uuid="deadbeef-feed-edee-beef-d0ea7beefedd",
+ display_name="test_server",
+ include_fake_metadata=False)
+
+ privates = ['172.19.0.1']
+ publics = ['192.168.0.3']
+ public6s = ['b33f::fdee:ddff:fecc:bbaa']
+
+ def nw_info(*args, **kwargs):
+ return [(None, {'label': 'public',
+ 'ips': [dict(ip=ip) for ip in publics],
+ 'ip6s': [dict(ip=ip) for ip in public6s]}),
+ (None, {'label': 'private',
+ 'ips': [dict(ip=ip) for ip in privates]})]
+
+ def floaters(*args, **kwargs):
+ return []
+
+ fakes.stub_out_nw_api_get_instance_nw_info(self.stubs, nw_info)
+ fakes.stub_out_nw_api_get_floating_ips_by_fixed_address(self.stubs,
+ floaters)
+
+ self.uuid = self.instance['uuid']
+ self.view_builder = views.servers.ViewBuilder()
+ self.request = fakes.HTTPRequestV3.blank("/v2")
+
+ def test_get_flavor_valid_instance_type(self):
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ expected = {"id": "1",
+ "links": [{"rel": "bookmark",
+ "href": flavor_bookmark}]}
+ result = self.view_builder._get_flavor(self.request, self.instance)
+ self.assertEqual(result, expected)
+
+ def test_build_server(self):
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "name": "test_server",
+ "links": [
+ {
+ "rel": "self",
+ "href": self_link,
+ },
+ {
+ "rel": "bookmark",
+ "href": bookmark_link,
+ },
+ ],
+ }
+ }
+
+ output = self.view_builder.basic(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+ def test_build_server_with_project_id(self):
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "name": "test_server",
+ "links": [
+ {
+ "rel": "self",
+ "href": "http://localhost/v3/fake/servers/%s" %
+ self.uuid,
+ },
+ {
+ "rel": "bookmark",
+ "href": "http://localhost/fake/servers/%s" % self.uuid,
+ },
+ ],
+ }
+ }
+
+ output = self.view_builder.basic(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+ def test_build_server_detail(self):
+ image_bookmark = "http://localhost/fake/images/5"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "hostId": '',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {},
+ "links": [
+ {
+ "rel": "self",
+ "href": self_link,
+ },
+ {
+ "rel": "bookmark",
+ "href": bookmark_link,
+ },
+ ],
+ }
+ }
+
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+ def test_build_server_no_image(self):
+ self.instance["image_ref"] = ""
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertEqual(output['server']['image'], "")
+
+ def test_build_server_detail_with_fault(self):
+ self.instance['vm_state'] = vm_states.ERROR
+ self.instance['fault'] = {
+ 'code': 404,
+ 'instance_uuid': self.uuid,
+ 'message': "HTTPNotFound",
+ 'details': "Stock details for test",
+ 'created_at': datetime.datetime(2010, 10, 10, 12, 0, 0),
+ }
+
+ image_bookmark = "http://localhost/fake/images/5"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "name": "test_server",
+ "status": "ERROR",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "hostId": '',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {},
+ "links": [
+ {
+ "rel": "self",
+ "href": self_link,
+ },
+ {
+ "rel": "bookmark",
+ "href": bookmark_link,
+ },
+ ],
+ "fault": {
+ "code": 404,
+ "created": "2010-10-10T12:00:00Z",
+ "message": "HTTPNotFound",
+ "details": "Stock details for test",
+ },
+ }
+ }
+
+ self.request.context = context.RequestContext('fake', 'fake')
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+ def test_build_server_detail_with_fault_no_details_not_admin(self):
+ self.instance['vm_state'] = vm_states.ERROR
+ self.instance['fault'] = {
+ 'code': 500,
+ 'instance_uuid': self.uuid,
+ 'message': "Error",
+ 'details': 'Stock details for test',
+ 'created_at': datetime.datetime(2010, 10, 10, 12, 0, 0),
+ }
+
+ expected_fault = {"code": 500,
+ "created": "2010-10-10T12:00:00Z",
+ "message": "Error"}
+
+ self.request.context = context.RequestContext('fake', 'fake')
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output['server']['fault'],
+ matchers.DictMatches(expected_fault))
+
+ def test_build_server_detail_with_fault_admin(self):
+ self.instance['vm_state'] = vm_states.ERROR
+ self.instance['fault'] = {
+ 'code': 500,
+ 'instance_uuid': self.uuid,
+ 'message': "Error",
+ 'details': 'Stock details for test',
+ 'created_at': datetime.datetime(2010, 10, 10, 12, 0, 0),
+ }
+
+ expected_fault = {"code": 500,
+ "created": "2010-10-10T12:00:00Z",
+ "message": "Error",
+ 'details': 'Stock details for test'}
+
+ self.request.environ['nova.context'].is_admin = True
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output['server']['fault'],
+ matchers.DictMatches(expected_fault))
+
+ def test_build_server_detail_with_fault_no_details_admin(self):
+ self.instance['vm_state'] = vm_states.ERROR
+ self.instance['fault'] = {
+ 'code': 500,
+ 'instance_uuid': self.uuid,
+ 'message': "Error",
+ 'details': '',
+ 'created_at': datetime.datetime(2010, 10, 10, 12, 0, 0),
+ }
+
+ expected_fault = {"code": 500,
+ "created": "2010-10-10T12:00:00Z",
+ "message": "Error"}
+
+ self.request.environ['nova.context'].is_admin = True
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output['server']['fault'],
+ matchers.DictMatches(expected_fault))
+
+ def test_build_server_detail_with_fault_but_active(self):
+ self.instance['vm_state'] = vm_states.ACTIVE
+ self.instance['progress'] = 100
+ self.instance['fault'] = {
+ 'code': 404,
+ 'instance_uuid': self.uuid,
+ 'message': "HTTPNotFound",
+ 'details': "Stock details for test",
+ 'created_at': datetime.datetime(2010, 10, 10, 12, 0, 0),
+ }
+
+ image_bookmark = "http://localhost/fake/images/5"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertFalse('fault' in output['server'])
+
+ def test_build_server_detail_active_status(self):
+ #set the power state of the instance to running
+ self.instance['vm_state'] = vm_states.ACTIVE
+ self.instance['progress'] = 100
+ image_bookmark = "http://localhost/fake/images/5"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 100,
+ "name": "test_server",
+ "status": "ACTIVE",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "hostId": '',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {},
+ "links": [
+ {
+ "rel": "self",
+ "href": self_link,
+ },
+ {
+ "rel": "bookmark",
+ "href": bookmark_link,
+ },
+ ],
+ }
+ }
+
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+ def test_build_server_detail_with_accessipv4(self):
+
+ self.instance['access_ip_v4'] = '1.2.3.4'
+
+ image_bookmark = "http://localhost/fake/images/5"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "hostId": '',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {},
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "",
+ "links": [
+ {
+ "rel": "self",
+ "href": self_link,
+ },
+ {
+ "rel": "bookmark",
+ "href": bookmark_link,
+ },
+ ],
+ }
+ }
+
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+ def test_build_server_detail_with_accessipv6(self):
+
+ self.instance['access_ip_v6'] = 'fead::1234'
+
+ image_bookmark = "http://localhost/fake/images/5"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "hostId": '',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {},
+ "accessIPv4": "",
+ "accessIPv6": "fead::1234",
+ "links": [
+ {
+ "rel": "self",
+ "href": self_link,
+ },
+ {
+ "rel": "bookmark",
+ "href": bookmark_link,
+ },
+ ],
+ }
+ }
+
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+ def test_build_server_detail_with_metadata(self):
+
+ metadata = []
+ metadata.append(models.InstanceMetadata(key="Open", value="Stack"))
+ self.instance['metadata'] = metadata
+
+ image_bookmark = "http://localhost/fake/images/5"
+ flavor_bookmark = "http://localhost/fake/flavors/1"
+ self_link = "http://localhost/v3/fake/servers/%s" % self.uuid
+ bookmark_link = "http://localhost/fake/servers/%s" % self.uuid
+ expected_server = {
+ "server": {
+ "id": self.uuid,
+ "user_id": "fake_user",
+ "tenant_id": "fake_project",
+ "updated": "2010-11-11T11:00:00Z",
+ "created": "2010-10-10T12:00:00Z",
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "hostId": '',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ 'test1': [
+ {'version': 4, 'addr': '192.168.1.100'},
+ {'version': 6, 'addr': '2001:db8:0:1::1'}
+ ]
+ },
+ "metadata": {"Open": "Stack"},
+ "links": [
+ {
+ "rel": "self",
+ "href": self_link,
+ },
+ {
+ "rel": "bookmark",
+ "href": bookmark_link,
+ },
+ ],
+ }
+ }
+
+ output = self.view_builder.show(self.request, self.instance)
+ self.assertThat(output, matchers.DictMatches(expected_server))
+
+
+class ServerXMLSerializationTest(test.TestCase):
+
+ TIMESTAMP = "2010-10-11T10:30:22Z"
+ SERVER_HREF = 'http://localhost/v3/servers/%s' % FAKE_UUID
+ SERVER_NEXT = 'http://localhost/v3/servers?limit=%s&marker=%s'
+ SERVER_BOOKMARK = 'http://localhost/servers/%s' % FAKE_UUID
+ IMAGE_BOOKMARK = 'http://localhost/images/5'
+ FLAVOR_BOOKMARK = 'http://localhost/flavors/1'
+
+ def test_xml_declaration(self):
+ serializer = servers.ServerTemplate()
+
+ fixture = {
+ "server": {
+ 'id': FAKE_UUID,
+ 'user_id': 'fake_user_id',
+ 'tenant_id': 'fake_tenant_id',
+ 'created': self.TIMESTAMP,
+ 'updated': self.TIMESTAMP,
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "hostId": 'e4d909c290d0fb1ca068ffaddf22cbd0',
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.IMAGE_BOOKMARK,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.FLAVOR_BOOKMARK,
+ },
+ ],
+ },
+ "addresses": {
+ "network_one": [
+ {
+ "version": 4,
+ "addr": "67.23.10.138",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.138",
+ },
+ ],
+ "network_two": [
+ {
+ "version": 4,
+ "addr": "67.23.10.139",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.139",
+ },
+ ],
+ },
+ "metadata": {
+ "Open": "Stack",
+ "Number": "1",
+ },
+ 'links': [
+ {
+ 'href': self.SERVER_HREF,
+ 'rel': 'self',
+ },
+ {
+ 'href': self.SERVER_BOOKMARK,
+ 'rel': 'bookmark',
+ },
+ ],
+ }
+ }
+
+ output = serializer.serialize(fixture)
+ has_dec = output.startswith("<?xml version='1.0' encoding='UTF-8'?>")
+ self.assertTrue(has_dec)
+
+ def test_show(self):
+ serializer = servers.ServerTemplate()
+
+ fixture = {
+ "server": {
+ "id": FAKE_UUID,
+ "user_id": "fake",
+ "tenant_id": "fake",
+ 'created': self.TIMESTAMP,
+ 'updated': self.TIMESTAMP,
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "hostId": 'e4d909c290d0fb1ca068ffaddf22cbd0',
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.IMAGE_BOOKMARK,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.FLAVOR_BOOKMARK,
+ },
+ ],
+ },
+ "addresses": {
+ "network_one": [
+ {
+ "version": 4,
+ "addr": "67.23.10.138",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.138",
+ },
+ ],
+ "network_two": [
+ {
+ "version": 4,
+ "addr": "67.23.10.139",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.139",
+ },
+ ],
+ },
+ "metadata": {
+ "Open": "Stack",
+ "Number": "1",
+ },
+ 'links': [
+ {
+ 'href': self.SERVER_HREF,
+ 'rel': 'self',
+ },
+ {
+ 'href': self.SERVER_BOOKMARK,
+ 'rel': 'bookmark',
+ },
+ ],
+ }
+ }
+
+ output = serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'server')
+
+ server_dict = fixture['server']
+
+ for key in ['name', 'id', 'created', 'accessIPv4',
+ 'updated', 'progress', 'status', 'hostId',
+ 'accessIPv6']:
+ self.assertEqual(root.get(key), str(server_dict[key]))
+
+ link_nodes = root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(server_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ metadata_root = root.find('{0}metadata'.format(NS))
+ metadata_elems = metadata_root.findall('{0}meta'.format(NS))
+ self.assertEqual(len(metadata_elems), 2)
+ for i, metadata_elem in enumerate(metadata_elems):
+ (meta_key, meta_value) = server_dict['metadata'].items()[i]
+ self.assertEqual(str(metadata_elem.get('key')), str(meta_key))
+ self.assertEqual(str(metadata_elem.text).strip(), str(meta_value))
+
+ image_root = root.find('{0}image'.format(NS))
+ self.assertEqual(image_root.get('id'), server_dict['image']['id'])
+ link_nodes = image_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['image']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ flavor_root = root.find('{0}flavor'.format(NS))
+ self.assertEqual(flavor_root.get('id'), server_dict['flavor']['id'])
+ link_nodes = flavor_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['flavor']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ addresses_root = root.find('{0}addresses'.format(NS))
+ addresses_dict = server_dict['addresses']
+ network_elems = addresses_root.findall('{0}network'.format(NS))
+ self.assertEqual(len(network_elems), 2)
+ for i, network_elem in enumerate(network_elems):
+ network = addresses_dict.items()[i]
+ self.assertEqual(str(network_elem.get('id')), str(network[0]))
+ ip_elems = network_elem.findall('{0}ip'.format(NS))
+ for z, ip_elem in enumerate(ip_elems):
+ ip = network[1][z]
+ self.assertEqual(str(ip_elem.get('version')),
+ str(ip['version']))
+ self.assertEqual(str(ip_elem.get('addr')),
+ str(ip['addr']))
+
+ def test_create(self):
+ serializer = servers.FullServerTemplate()
+
+ fixture = {
+ "server": {
+ "id": FAKE_UUID,
+ "user_id": "fake",
+ "tenant_id": "fake",
+ 'created': self.TIMESTAMP,
+ 'updated': self.TIMESTAMP,
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ "hostId": "e4d909c290d0fb1ca068ffaddf22cbd0",
+ "adminPass": "test_password",
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.IMAGE_BOOKMARK,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.FLAVOR_BOOKMARK,
+ },
+ ],
+ },
+ "addresses": {
+ "network_one": [
+ {
+ "version": 4,
+ "addr": "67.23.10.138",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.138",
+ },
+ ],
+ "network_two": [
+ {
+ "version": 4,
+ "addr": "67.23.10.139",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.139",
+ },
+ ],
+ },
+ "metadata": {
+ "Open": "Stack",
+ "Number": "1",
+ },
+ 'links': [
+ {
+ 'href': self.SERVER_HREF,
+ 'rel': 'self',
+ },
+ {
+ 'href': self.SERVER_BOOKMARK,
+ 'rel': 'bookmark',
+ },
+ ],
+ }
+ }
+
+ output = serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'server')
+
+ server_dict = fixture['server']
+
+ for key in ['name', 'id', 'created', 'accessIPv4',
+ 'updated', 'progress', 'status', 'hostId',
+ 'accessIPv6', 'adminPass']:
+ self.assertEqual(root.get(key), str(server_dict[key]))
+
+ link_nodes = root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(server_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ metadata_root = root.find('{0}metadata'.format(NS))
+ metadata_elems = metadata_root.findall('{0}meta'.format(NS))
+ self.assertEqual(len(metadata_elems), 2)
+ for i, metadata_elem in enumerate(metadata_elems):
+ (meta_key, meta_value) = server_dict['metadata'].items()[i]
+ self.assertEqual(str(metadata_elem.get('key')), str(meta_key))
+ self.assertEqual(str(metadata_elem.text).strip(), str(meta_value))
+
+ image_root = root.find('{0}image'.format(NS))
+ self.assertEqual(image_root.get('id'), server_dict['image']['id'])
+ link_nodes = image_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['image']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ flavor_root = root.find('{0}flavor'.format(NS))
+ self.assertEqual(flavor_root.get('id'), server_dict['flavor']['id'])
+ link_nodes = flavor_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['flavor']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ addresses_root = root.find('{0}addresses'.format(NS))
+ addresses_dict = server_dict['addresses']
+ network_elems = addresses_root.findall('{0}network'.format(NS))
+ self.assertEqual(len(network_elems), 2)
+ for i, network_elem in enumerate(network_elems):
+ network = addresses_dict.items()[i]
+ self.assertEqual(str(network_elem.get('id')), str(network[0]))
+ ip_elems = network_elem.findall('{0}ip'.format(NS))
+ for z, ip_elem in enumerate(ip_elems):
+ ip = network[1][z]
+ self.assertEqual(str(ip_elem.get('version')),
+ str(ip['version']))
+ self.assertEqual(str(ip_elem.get('addr')),
+ str(ip['addr']))
+
+ def test_index(self):
+ serializer = servers.MinimalServersTemplate()
+
+ uuid1 = fakes.get_fake_uuid(1)
+ uuid2 = fakes.get_fake_uuid(2)
+ expected_server_href = 'http://localhost/v3/servers/%s' % uuid1
+ expected_server_bookmark = 'http://localhost/servers/%s' % uuid1
+ expected_server_href_2 = 'http://localhost/v3/servers/%s' % uuid2
+ expected_server_bookmark_2 = 'http://localhost/servers/%s' % uuid2
+ fixture = {"servers": [
+ {
+ "id": fakes.get_fake_uuid(1),
+ "name": "test_server",
+ 'links': [
+ {
+ 'href': expected_server_href,
+ 'rel': 'self',
+ },
+ {
+ 'href': expected_server_bookmark,
+ 'rel': 'bookmark',
+ },
+ ],
+ },
+ {
+ "id": fakes.get_fake_uuid(2),
+ "name": "test_server_2",
+ 'links': [
+ {
+ 'href': expected_server_href_2,
+ 'rel': 'self',
+ },
+ {
+ 'href': expected_server_bookmark_2,
+ 'rel': 'bookmark',
+ },
+ ],
+ },
+ ]}
+
+ output = serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'servers_index')
+ server_elems = root.findall('{0}server'.format(NS))
+ self.assertEqual(len(server_elems), 2)
+ for i, server_elem in enumerate(server_elems):
+ server_dict = fixture['servers'][i]
+ for key in ['name', 'id']:
+ self.assertEqual(server_elem.get(key), str(server_dict[key]))
+
+ link_nodes = server_elem.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(server_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ def test_index_with_servers_links(self):
+ serializer = servers.MinimalServersTemplate()
+
+ uuid1 = fakes.get_fake_uuid(1)
+ uuid2 = fakes.get_fake_uuid(2)
+ expected_server_href = 'http://localhost/v3/servers/%s' % uuid1
+ expected_server_next = self.SERVER_NEXT % (2, 2)
+ expected_server_bookmark = 'http://localhost/servers/%s' % uuid1
+ expected_server_href_2 = 'http://localhost/v3/servers/%s' % uuid2
+ expected_server_bookmark_2 = 'http://localhost/servers/%s' % uuid2
+ fixture = {"servers": [
+ {
+ "id": fakes.get_fake_uuid(1),
+ "name": "test_server",
+ 'links': [
+ {
+ 'href': expected_server_href,
+ 'rel': 'self',
+ },
+ {
+ 'href': expected_server_bookmark,
+ 'rel': 'bookmark',
+ },
+ ],
+ },
+ {
+ "id": fakes.get_fake_uuid(2),
+ "name": "test_server_2",
+ 'links': [
+ {
+ 'href': expected_server_href_2,
+ 'rel': 'self',
+ },
+ {
+ 'href': expected_server_bookmark_2,
+ 'rel': 'bookmark',
+ },
+ ],
+ },
+ ],
+ "servers_links": [
+ {
+ 'rel': 'next',
+ 'href': expected_server_next,
+ },
+ ]}
+
+ output = serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'servers_index')
+ server_elems = root.findall('{0}server'.format(NS))
+ self.assertEqual(len(server_elems), 2)
+ for i, server_elem in enumerate(server_elems):
+ server_dict = fixture['servers'][i]
+ for key in ['name', 'id']:
+ self.assertEqual(server_elem.get(key), str(server_dict[key]))
+
+ link_nodes = server_elem.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(server_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ # Check servers_links
+ servers_links = root.findall('{0}link'.format(ATOMNS))
+ for i, link in enumerate(fixture['servers_links']):
+ for key, value in link.items():
+ self.assertEqual(servers_links[i].get(key), value)
+
+ def test_detail(self):
+ serializer = servers.ServersTemplate()
+
+ uuid1 = fakes.get_fake_uuid(1)
+ expected_server_href = 'http://localhost/v3/servers/%s' % uuid1
+ expected_server_bookmark = 'http://localhost/servers/%s' % uuid1
+ expected_image_bookmark = self.IMAGE_BOOKMARK
+ expected_flavor_bookmark = self.FLAVOR_BOOKMARK
+
+ uuid2 = fakes.get_fake_uuid(2)
+ expected_server_href_2 = 'http://localhost/v3/servers/%s' % uuid2
+ expected_server_bookmark_2 = 'http://localhost/servers/%s' % uuid2
+ fixture = {"servers": [
+ {
+ "id": fakes.get_fake_uuid(1),
+ "user_id": "fake",
+ "tenant_id": "fake",
+ 'created': self.TIMESTAMP,
+ 'updated': self.TIMESTAMP,
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ "hostId": 'e4d909c290d0fb1ca068ffaddf22cbd0',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": expected_image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": expected_flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ "network_one": [
+ {
+ "version": 4,
+ "addr": "67.23.10.138",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.138",
+ },
+ ],
+ },
+ "metadata": {
+ "Number": "1",
+ },
+ "links": [
+ {
+ "href": expected_server_href,
+ "rel": "self",
+ },
+ {
+ "href": expected_server_bookmark,
+ "rel": "bookmark",
+ },
+ ],
+ },
+ {
+ "id": fakes.get_fake_uuid(2),
+ "user_id": 'fake',
+ "tenant_id": 'fake',
+ 'created': self.TIMESTAMP,
+ 'updated': self.TIMESTAMP,
+ "progress": 100,
+ "name": "test_server_2",
+ "status": "ACTIVE",
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ "hostId": 'e4d909c290d0fb1ca068ffaddf22cbd0',
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": expected_image_bookmark,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": expected_flavor_bookmark,
+ },
+ ],
+ },
+ "addresses": {
+ "network_one": [
+ {
+ "version": 4,
+ "addr": "67.23.10.138",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.138",
+ },
+ ],
+ },
+ "metadata": {
+ "Number": "2",
+ },
+ "links": [
+ {
+ "href": expected_server_href_2,
+ "rel": "self",
+ },
+ {
+ "href": expected_server_bookmark_2,
+ "rel": "bookmark",
+ },
+ ],
+ },
+ ]}
+
+ output = serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'servers')
+ server_elems = root.findall('{0}server'.format(NS))
+ self.assertEqual(len(server_elems), 2)
+ for i, server_elem in enumerate(server_elems):
+ server_dict = fixture['servers'][i]
+
+ for key in ['name', 'id', 'created', 'accessIPv4',
+ 'updated', 'progress', 'status', 'hostId',
+ 'accessIPv6']:
+ self.assertEqual(server_elem.get(key), str(server_dict[key]))
+
+ link_nodes = server_elem.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(server_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ metadata_root = server_elem.find('{0}metadata'.format(NS))
+ metadata_elems = metadata_root.findall('{0}meta'.format(NS))
+ for i, metadata_elem in enumerate(metadata_elems):
+ (meta_key, meta_value) = server_dict['metadata'].items()[i]
+ self.assertEqual(str(metadata_elem.get('key')), str(meta_key))
+ self.assertEqual(str(metadata_elem.text).strip(),
+ str(meta_value))
+
+ image_root = server_elem.find('{0}image'.format(NS))
+ self.assertEqual(image_root.get('id'), server_dict['image']['id'])
+ link_nodes = image_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['image']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ flavor_root = server_elem.find('{0}flavor'.format(NS))
+ self.assertEqual(flavor_root.get('id'),
+ server_dict['flavor']['id'])
+ link_nodes = flavor_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['flavor']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ addresses_root = server_elem.find('{0}addresses'.format(NS))
+ addresses_dict = server_dict['addresses']
+ network_elems = addresses_root.findall('{0}network'.format(NS))
+ for i, network_elem in enumerate(network_elems):
+ network = addresses_dict.items()[i]
+ self.assertEqual(str(network_elem.get('id')), str(network[0]))
+ ip_elems = network_elem.findall('{0}ip'.format(NS))
+ for z, ip_elem in enumerate(ip_elems):
+ ip = network[1][z]
+ self.assertEqual(str(ip_elem.get('version')),
+ str(ip['version']))
+ self.assertEqual(str(ip_elem.get('addr')),
+ str(ip['addr']))
+
+ def test_update(self):
+ serializer = servers.ServerTemplate()
+
+ fixture = {
+ "server": {
+ "id": FAKE_UUID,
+ "user_id": "fake",
+ "tenant_id": "fake",
+ 'created': self.TIMESTAMP,
+ 'updated': self.TIMESTAMP,
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "hostId": 'e4d909c290d0fb1ca068ffaddf22cbd0',
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.IMAGE_BOOKMARK,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.FLAVOR_BOOKMARK,
+ },
+ ],
+ },
+ "addresses": {
+ "network_one": [
+ {
+ "version": 4,
+ "addr": "67.23.10.138",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.138",
+ },
+ ],
+ "network_two": [
+ {
+ "version": 4,
+ "addr": "67.23.10.139",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.139",
+ },
+ ],
+ },
+ "metadata": {
+ "Open": "Stack",
+ "Number": "1",
+ },
+ 'links': [
+ {
+ 'href': self.SERVER_HREF,
+ 'rel': 'self',
+ },
+ {
+ 'href': self.SERVER_BOOKMARK,
+ 'rel': 'bookmark',
+ },
+ ],
+ "fault": {
+ "code": 500,
+ "created": self.TIMESTAMP,
+ "message": "Error Message",
+ "details": "Fault details",
+ }
+ }
+ }
+
+ output = serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'server')
+
+ server_dict = fixture['server']
+
+ for key in ['name', 'id', 'created', 'accessIPv4',
+ 'updated', 'progress', 'status', 'hostId',
+ 'accessIPv6']:
+ self.assertEqual(root.get(key), str(server_dict[key]))
+
+ link_nodes = root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(server_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ metadata_root = root.find('{0}metadata'.format(NS))
+ metadata_elems = metadata_root.findall('{0}meta'.format(NS))
+ self.assertEqual(len(metadata_elems), 2)
+ for i, metadata_elem in enumerate(metadata_elems):
+ (meta_key, meta_value) = server_dict['metadata'].items()[i]
+ self.assertEqual(str(metadata_elem.get('key')), str(meta_key))
+ self.assertEqual(str(metadata_elem.text).strip(), str(meta_value))
+
+ image_root = root.find('{0}image'.format(NS))
+ self.assertEqual(image_root.get('id'), server_dict['image']['id'])
+ link_nodes = image_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['image']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ flavor_root = root.find('{0}flavor'.format(NS))
+ self.assertEqual(flavor_root.get('id'), server_dict['flavor']['id'])
+ link_nodes = flavor_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['flavor']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ addresses_root = root.find('{0}addresses'.format(NS))
+ addresses_dict = server_dict['addresses']
+ network_elems = addresses_root.findall('{0}network'.format(NS))
+ self.assertEqual(len(network_elems), 2)
+ for i, network_elem in enumerate(network_elems):
+ network = addresses_dict.items()[i]
+ self.assertEqual(str(network_elem.get('id')), str(network[0]))
+ ip_elems = network_elem.findall('{0}ip'.format(NS))
+ for z, ip_elem in enumerate(ip_elems):
+ ip = network[1][z]
+ self.assertEqual(str(ip_elem.get('version')),
+ str(ip['version']))
+ self.assertEqual(str(ip_elem.get('addr')),
+ str(ip['addr']))
+
+ fault_root = root.find('{0}fault'.format(NS))
+ fault_dict = server_dict['fault']
+ self.assertEqual(fault_root.get("code"), str(fault_dict["code"]))
+ self.assertEqual(fault_root.get("created"), fault_dict["created"])
+ msg_elem = fault_root.find('{0}message'.format(NS))
+ self.assertEqual(msg_elem.text, fault_dict["message"])
+ det_elem = fault_root.find('{0}details'.format(NS))
+ self.assertEqual(det_elem.text, fault_dict["details"])
+
+ def test_action(self):
+ serializer = servers.FullServerTemplate()
+
+ fixture = {
+ "server": {
+ "id": FAKE_UUID,
+ "user_id": "fake",
+ "tenant_id": "fake",
+ 'created': self.TIMESTAMP,
+ 'updated': self.TIMESTAMP,
+ "progress": 0,
+ "name": "test_server",
+ "status": "BUILD",
+ "accessIPv4": "1.2.3.4",
+ "accessIPv6": "fead::1234",
+ "hostId": "e4d909c290d0fb1ca068ffaddf22cbd0",
+ "adminPass": "test_password",
+ "image": {
+ "id": "5",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.IMAGE_BOOKMARK,
+ },
+ ],
+ },
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "rel": "bookmark",
+ "href": self.FLAVOR_BOOKMARK,
+ },
+ ],
+ },
+ "addresses": {
+ "network_one": [
+ {
+ "version": 4,
+ "addr": "67.23.10.138",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.138",
+ },
+ ],
+ "network_two": [
+ {
+ "version": 4,
+ "addr": "67.23.10.139",
+ },
+ {
+ "version": 6,
+ "addr": "::babe:67.23.10.139",
+ },
+ ],
+ },
+ "metadata": {
+ "Open": "Stack",
+ "Number": "1",
+ },
+ 'links': [
+ {
+ 'href': self.SERVER_HREF,
+ 'rel': 'self',
+ },
+ {
+ 'href': self.SERVER_BOOKMARK,
+ 'rel': 'bookmark',
+ },
+ ],
+ }
+ }
+
+ output = serializer.serialize(fixture)
+ root = etree.XML(output)
+ xmlutil.validate_schema(root, 'server')
+
+ server_dict = fixture['server']
+
+ for key in ['name', 'id', 'created', 'accessIPv4',
+ 'updated', 'progress', 'status', 'hostId',
+ 'accessIPv6', 'adminPass']:
+ self.assertEqual(root.get(key), str(server_dict[key]))
+
+ link_nodes = root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 2)
+ for i, link in enumerate(server_dict['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ metadata_root = root.find('{0}metadata'.format(NS))
+ metadata_elems = metadata_root.findall('{0}meta'.format(NS))
+ self.assertEqual(len(metadata_elems), 2)
+ for i, metadata_elem in enumerate(metadata_elems):
+ (meta_key, meta_value) = server_dict['metadata'].items()[i]
+ self.assertEqual(str(metadata_elem.get('key')), str(meta_key))
+ self.assertEqual(str(metadata_elem.text).strip(), str(meta_value))
+
+ image_root = root.find('{0}image'.format(NS))
+ self.assertEqual(image_root.get('id'), server_dict['image']['id'])
+ link_nodes = image_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['image']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ flavor_root = root.find('{0}flavor'.format(NS))
+ self.assertEqual(flavor_root.get('id'), server_dict['flavor']['id'])
+ link_nodes = flavor_root.findall('{0}link'.format(ATOMNS))
+ self.assertEqual(len(link_nodes), 1)
+ for i, link in enumerate(server_dict['flavor']['links']):
+ for key, value in link.items():
+ self.assertEqual(link_nodes[i].get(key), value)
+
+ addresses_root = root.find('{0}addresses'.format(NS))
+ addresses_dict = server_dict['addresses']
+ network_elems = addresses_root.findall('{0}network'.format(NS))
+ self.assertEqual(len(network_elems), 2)
+ for i, network_elem in enumerate(network_elems):
+ network = addresses_dict.items()[i]
+ self.assertEqual(str(network_elem.get('id')), str(network[0]))
+ ip_elems = network_elem.findall('{0}ip'.format(NS))
+ for z, ip_elem in enumerate(ip_elems):
+ ip = network[1][z]
+ self.assertEqual(str(ip_elem.get('version')),
+ str(ip['version']))
+ self.assertEqual(str(ip_elem.get('addr')),
+ str(ip['addr']))
+
+
+class ServersAllExtensionsTestCase(test.TestCase):
+ """
+ Servers tests using default API router with all extensions enabled.
+
+ The intent here is to catch cases where extensions end up throwing
+ an exception because of a malformed request before the core API
+ gets a chance to validate the request and return a 422 response.
+
+ For example, ServerDiskConfigController extends servers.Controller:
+
+ @wsgi.extends
+ def create(self, req, body):
+ if 'server' in body:
+ self._set_disk_config(body['server'])
+ resp_obj = (yield)
+ self._show(req, resp_obj)
+
+ we want to ensure that the extension isn't barfing on an invalid
+ body.
+ """
+
+ def setUp(self):
+ super(ServersAllExtensionsTestCase, self).setUp()
+ self.app = compute.APIRouterV3()
+
+ def test_create_missing_server(self):
+ # Test create with malformed body.
+
+ def fake_create(*args, **kwargs):
+ raise test.TestingException("Should not reach the compute API.")
+
+ self.stubs.Set(compute_api.API, 'create', fake_create)
+
+ req = fakes.HTTPRequestV3.blank('/servers')
+ req.method = 'POST'
+ req.content_type = 'application/json'
+ body = {'foo': {'a': 'b'}}
+
+ req.body = jsonutils.dumps(body)
+ res = req.get_response(self.app)
+ self.assertEqual(422, res.status_int)
+
+ def test_update_missing_server(self):
+ # Test create with malformed body.
+
+ def fake_update(*args, **kwargs):
+ raise test.TestingException("Should not reach the compute API.")
+
+ self.stubs.Set(compute_api.API, 'create', fake_update)
+
+ req = fakes.HTTPRequestV3.blank('/servers/1')
+ req.method = 'PUT'
+ req.content_type = 'application/json'
+ body = {'foo': {'a': 'b'}}
+
+ req.body = jsonutils.dumps(body)
+ res = req.get_response(self.app)
+ self.assertEqual(422, res.status_int)
+
+
+class ServersUnprocessableEntityTestCase(test.TestCase):
+ """
+ Tests of places we throw 422 Unprocessable Entity from
+ """
+
+ def setUp(self):
+ super(ServersUnprocessableEntityTestCase, self).setUp()
+ ext_info = plugins.LoadedExtensionInfo()
+ self.controller = servers.ServersController(extension_info=ext_info)
+
+ def _unprocessable_server_create(self, body):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers')
+ req.method = 'POST'
+
+ self.assertRaises(webob.exc.HTTPUnprocessableEntity,
+ self.controller.create, req, body)
+
+ def test_create_server_no_body(self):
+ self._unprocessable_server_create(body=None)
+
+ def test_create_server_missing_server(self):
+ body = {'foo': {'a': 'b'}}
+ self._unprocessable_server_create(body=body)
+
+ def test_create_server_malformed_entity(self):
+ body = {'server': 'string'}
+ self._unprocessable_server_create(body=body)
+
+ def _unprocessable_server_update(self, body):
+ req = fakes.HTTPRequestV3.blank('/v3/fake/servers/%s' % FAKE_UUID)
+ req.method = 'PUT'
+
+ self.assertRaises(webob.exc.HTTPUnprocessableEntity,
+ self.controller.update, req, FAKE_UUID, body)
+
+ def test_update_server_no_body(self):
+ self._unprocessable_server_update(body=None)
+
+ def test_update_server_missing_server(self):
+ body = {'foo': {'a': 'b'}}
+ self._unprocessable_server_update(body=body)
+
+ def test_create_update_malformed_entity(self):
+ body = {'server': 'string'}
+ self._unprocessable_server_update(body=body)
diff --git a/nova/tests/api/openstack/compute/test_extensions.py b/nova/tests/api/openstack/compute/test_extensions.py
index 6e400a075..69952943e 100644
--- a/nova/tests/api/openstack/compute/test_extensions.py
+++ b/nova/tests/api/openstack/compute/test_extensions.py
@@ -26,7 +26,9 @@ from nova.api.openstack.compute import extensions as compute_extensions
from nova.api.openstack import extensions as base_extensions
from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
+from nova import exception
from nova.openstack.common import jsonutils
+import nova.policy
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import matchers
@@ -147,6 +149,24 @@ class ExtensionTestCase(test.TestCase):
if fox not in ext_list:
ext_list.append(fox)
self.flags(osapi_compute_extension=ext_list)
+ self.fake_context = nova.context.RequestContext('fake', 'fake')
+
+ def test_extension_authorizer_throws_exception_if_policy_fails(self):
+ target = {'project_id': '1234',
+ 'user_id': '5678'}
+ self.mox.StubOutWithMock(nova.policy, 'enforce')
+ nova.policy.enforce(self.fake_context,
+ "compute_extension:used_limits_for_admin",
+ target).AndRaise(
+ exception.PolicyNotAuthorized(
+ action="compute_extension:used_limits_for_admin"))
+ ('compute', 'used_limits_for_admin')
+ self.mox.ReplayAll()
+ authorize = base_extensions.extension_authorizer('compute',
+ 'used_limits_for_admin'
+ )
+ self.assertRaises(exception.PolicyNotAuthorized, authorize,
+ self.fake_context, target=target)
class ExtensionControllerTest(ExtensionTestCase):
@@ -195,6 +215,7 @@ class ExtensionControllerTest(ExtensionTestCase):
"MultipleCreate",
"QuotaClasses",
"Quotas",
+ "ExtendedQuotas",
"Rescue",
"SchedulerHints",
"SecurityGroupDefaultRules",
diff --git a/nova/tests/api/openstack/compute/test_flavors.py b/nova/tests/api/openstack/compute/test_flavors.py
index 13206b6f8..77e637044 100644
--- a/nova/tests/api/openstack/compute/test_flavors.py
+++ b/nova/tests/api/openstack/compute/test_flavors.py
@@ -50,11 +50,11 @@ FAKE_FLAVORS = {
}
-def fake_instance_type_get_by_flavor_id(flavorid):
+def fake_flavor_get_by_flavor_id(flavorid):
return FAKE_FLAVORS['flavor %s' % flavorid]
-def fake_instance_type_get_all(inactive=False, filters=None):
+def fake_flavor_get_all(inactive=False, filters=None):
def reject_min(db_attr, filter_attr):
return (filter_attr in filters and
int(flavor[db_attr]) < int(filters[filter_attr]))
@@ -72,11 +72,11 @@ def fake_instance_type_get_all(inactive=False, filters=None):
return output
-def empty_instance_type_get_all(inactive=False, filters=None):
+def empty_flavor_get_all(inactive=False, filters=None):
return {}
-def return_instance_type_not_found(flavor_id):
+def return_flavor_not_found(flavor_id):
raise exception.InstanceTypeNotFound(instance_type_id=flavor_id)
@@ -86,18 +86,18 @@ class FlavorsTest(test.TestCase):
self.flags(osapi_compute_extension=[])
fakes.stub_out_networking(self.stubs)
fakes.stub_out_rate_limiting(self.stubs)
- self.stubs.Set(nova.compute.flavors, "get_all_types",
- fake_instance_type_get_all)
+ self.stubs.Set(nova.compute.flavors, "get_all_flavors",
+ fake_flavor_get_all)
self.stubs.Set(nova.compute.flavors,
- "get_instance_type_by_flavor_id",
- fake_instance_type_get_by_flavor_id)
+ "get_flavor_by_flavor_id",
+ fake_flavor_get_by_flavor_id)
self.controller = flavors.Controller()
def test_get_flavor_by_invalid_id(self):
self.stubs.Set(nova.compute.flavors,
- "get_instance_type_by_flavor_id",
- return_instance_type_not_found)
+ "get_flavor_by_flavor_id",
+ return_flavor_not_found)
req = fakes.HTTPRequest.blank('/v2/fake/flavors/asdf')
self.assertRaises(webob.exc.HTTPNotFound,
self.controller.show, req, 'asdf')
@@ -341,8 +341,8 @@ class FlavorsTest(test.TestCase):
self.assertEqual(flavor, expected)
def test_get_empty_flavor_list(self):
- self.stubs.Set(nova.compute.flavors, "get_all_types",
- empty_instance_type_get_all)
+ self.stubs.Set(nova.compute.flavors, "get_all_flavors",
+ empty_flavor_get_all)
req = fakes.HTTPRequest.blank('/v2/fake/flavors')
flavors = self.controller.index(req)
diff --git a/nova/tests/api/openstack/compute/test_limits.py b/nova/tests/api/openstack/compute/test_limits.py
index e51601e31..79bb97d2a 100644
--- a/nova/tests/api/openstack/compute/test_limits.py
+++ b/nova/tests/api/openstack/compute/test_limits.py
@@ -462,7 +462,7 @@ class ParseLimitsTest(BaseLimitTestSuite):
'(PUT, /foo*, /foo.*, 10, hour);'
'(POST, /bar*, /bar.*, 5, second);'
'(Say, /derp*, /derp.*, 1, day)')
- except ValueError, e:
+ except ValueError as e:
assert False, str(e)
# Make sure the number of returned limits are correct
diff --git a/nova/tests/api/openstack/compute/test_server_actions.py b/nova/tests/api/openstack/compute/test_server_actions.py
index 3b8833dd7..f1defe039 100644
--- a/nova/tests/api/openstack/compute/test_server_actions.py
+++ b/nova/tests/api/openstack/compute/test_server_actions.py
@@ -630,6 +630,34 @@ class ServerActionsControllerTest(test.TestCase):
self.controller._action_resize,
req, FAKE_UUID, body)
+ def test_resize_with_image_exceptions(self):
+ body = dict(resize=dict(flavorRef="http://localhost/3"))
+ self.resize_called = 0
+ image_id = 'fake_image_id'
+
+ exceptions = [
+ (exception.ImageNotAuthorized(image_id=image_id),
+ webob.exc.HTTPUnauthorized),
+ (exception.ImageNotFound(image_id=image_id),
+ webob.exc.HTTPBadRequest),
+ (exception.Invalid, webob.exc.HTTPBadRequest),
+ ]
+
+ raised, expected = map(iter, zip(*exceptions))
+
+ def _fake_resize(obj, context, instance, flavor_id):
+ self.resize_called += 1
+ raise raised.next()
+
+ self.stubs.Set(compute_api.API, 'resize', _fake_resize)
+
+ for call_no in range(len(exceptions)):
+ req = fakes.HTTPRequest.blank(self.url)
+ self.assertRaises(expected.next(),
+ self.controller._action_resize,
+ req, FAKE_UUID, body)
+ self.assertEqual(self.resize_called, call_no + 1)
+
def test_resize_with_too_many_instances(self):
body = dict(resize=dict(flavorRef="http://localhost/3"))
@@ -815,7 +843,8 @@ class ServerActionsControllerTest(test.TestCase):
def fake_block_device_mapping_get_all_by_instance(context, inst_id):
return [dict(volume_id=_fake_id('a'),
- virtual_name=None,
+ source_type='snapshot',
+ destination_type='volume',
volume_size=1,
device_name='vda',
snapshot_id=1,
diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py
index 993451263..6a8c3702f 100644
--- a/nova/tests/api/openstack/compute/test_servers.py
+++ b/nova/tests/api/openstack/compute/test_servers.py
@@ -24,6 +24,7 @@ import uuid
import iso8601
from lxml import etree
+import mox
from oslo.config import cfg
import webob
@@ -1451,6 +1452,35 @@ class ServersControllerTest(test.TestCase):
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller._action_rebuild, req, FAKE_UUID, body)
+ def test_rebuild_instance_image_too_large(self):
+ # make image size larger than our instance disk size
+ size = str(1000 * (1024 ** 3))
+
+ def fake_get_image(self, context, image_href):
+ return dict(id='76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
+ name='public image', is_public=True,
+ status='active', size=size)
+
+ self.stubs.Set(fake._FakeImageService, 'show', fake_get_image)
+
+ self.stubs.Set(db, 'instance_get_by_uuid',
+ fakes.fake_instance_get(vm_state=vm_states.ACTIVE))
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v2/fake/images/%s' % image_uuid
+ body = {
+ 'rebuild': {
+ 'name': 'new_name',
+ 'imageRef': image_href,
+ },
+ }
+
+ req = fakes.HTTPRequest.blank('/v2/fake/servers/a/action')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller._action_rebuild, req, FAKE_UUID, body)
+
def test_rebuild_instance_with_deleted_image(self):
def fake_get_image(self, context, image_href):
return dict(id='76fa36fc-c930-4bf3-8c8a-ea2a2420deb6',
@@ -1752,8 +1782,10 @@ class ServersControllerCreateTest(test.TestCase):
self.ext_mgr.extensions = {}
self.controller = servers.Controller(self.ext_mgr)
+ self.volume_id = 'fake'
+
def instance_create(context, inst):
- inst_type = flavors.get_instance_type_by_flavor_id(3)
+ inst_type = flavors.get_flavor_by_flavor_id(3)
image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
def_image_ref = 'http://localhost/images/%s' % image_uuid
self.instance_cache_num += 1
@@ -1775,6 +1807,7 @@ class ServersControllerCreateTest(test.TestCase):
"fixed_ips": [],
"task_state": "",
"vm_state": "",
+ "root_device_name": inst.get('root_device_name', 'vda'),
}
self.instance_cache_by_id[instance['id']] = instance
@@ -1885,6 +1918,27 @@ class ServersControllerCreateTest(test.TestCase):
req,
body)
+ def test_create_server_with_invalid_networks_parameter(self):
+ self.ext_mgr.extensions = {'os-networks': 'fake'}
+ image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'networks': {'uuid': '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'},
+ }
+ }
+ req = fakes.HTTPRequest.blank('/v2/fake/servers')
+ req.method = 'POST'
+ req.body = jsonutils.dumps(body)
+ req.headers["content-type"] = "application/json"
+ self.assertRaises(webob.exc.HTTPBadRequest,
+ self.controller.create,
+ req,
+ body)
+
def test_create_server_with_deleted_image(self):
image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
# Get the fake image service so we can set the status to deleted
@@ -1908,6 +1962,35 @@ class ServersControllerCreateTest(test.TestCase):
'Image 76fa36fc-c930-4bf3-8c8a-ea2a2420deb6 is not active.'):
self.controller.create(req, body)
+ def test_create_server_image_too_large(self):
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+
+ # Get the fake image service so we can set the status to deleted
+ (image_service, image_id) = glance.get_remote_image_service(
+ context, image_uuid)
+
+ image = image_service.show(context, image_id)
+
+ orig_size = image['size']
+ new_size = str(1000 * (1024 ** 3))
+ image_service.update(context, image_uuid, {'size': new_size})
+
+ self.addCleanup(image_service.update, context, image_uuid,
+ {'size': orig_size})
+
+ req = fakes.HTTPRequest.blank('/v2/fake/servers')
+ req.method = 'POST'
+ body = dict(server=dict(name='server_test',
+ imageRef=image_uuid,
+ flavorRef=2))
+ req.body = jsonutils.dumps(body)
+
+ req.headers["content-type"] = "application/json"
+ with testtools.ExpectedException(
+ webob.exc.HTTPBadRequest,
+ "Instance type's disk is too small for requested image."):
+ self.controller.create(req, body)
+
def test_create_instance_invalid_negative_min(self):
self.ext_mgr.extensions = {'os-multiple-create': 'fake'}
image_href = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
@@ -2329,7 +2412,7 @@ class ServersControllerCreateTest(test.TestCase):
def test_create_instance_with_volumes_enabled(self):
self.ext_mgr.extensions = {'os-volumes': 'fake'}
- bdm = [{'device_name': 'foo'}]
+ bdm = [{'device_name': 'foo', 'volume_id': 'fake_vol'}]
params = {'block_device_mapping': bdm}
old_create = compute_api.API.create
@@ -2337,7 +2420,11 @@ class ServersControllerCreateTest(test.TestCase):
self.assertEqual(kwargs['block_device_mapping'], bdm)
return old_create(*args, **kwargs)
+ def _validate_bdm(*args, **kwargs):
+ pass
+
self.stubs.Set(compute_api.API, 'create', create)
+ self.stubs.Set(compute_api.API, '_validate_bdm', _validate_bdm)
self._test_create_extra(params)
def test_create_instance_with_volumes_enabled_no_image(self):
@@ -2362,7 +2449,25 @@ class ServersControllerCreateTest(test.TestCase):
os-volumes extension is enabled and bdms are supplied
"""
self.ext_mgr.extensions = {'os-volumes': 'fake'}
- bdm = [{'device_name': 'foo'}]
+ self.mox.StubOutWithMock(compute_api.API, '_validate_bdm')
+ self.mox.StubOutWithMock(compute_api.API, '_get_volume')
+ bdm = [{
+ 'id': 1,
+ 'no_device': None,
+ 'virtual_name': None,
+ 'snapshot_id': None,
+ 'volume_id': self.volume_id,
+ 'status': 'active',
+ 'device_name': 'vda',
+ 'delete_on_termination': False,
+ 'volume_image_metadata':
+ {'test_key': 'test_value'}
+ }]
+ volume = bdm[0]
+ compute_api.API._validate_bdm(mox.IgnoreArg(),
+ mox.IgnoreArg()).AndReturn(True)
+ compute_api.API._get_volume(mox.IgnoreArg(),
+ bdm).AndReturn(volume)
params = {'block_device_mapping': bdm}
old_create = compute_api.API.create
@@ -2371,7 +2476,11 @@ class ServersControllerCreateTest(test.TestCase):
self.assertNotIn('imageRef', kwargs)
return old_create(*args, **kwargs)
+ def _validate_bdm(*args, **kwargs):
+ pass
+
self.stubs.Set(compute_api.API, 'create', create)
+ self.mox.ReplayAll()
self._test_create_extra(params, no_image=True)
def test_create_instance_with_volumes_disabled(self):
@@ -2456,17 +2565,27 @@ class ServersControllerCreateTest(test.TestCase):
def test_create_instance_with_bdm_delete_on_termination(self):
self.ext_mgr.extensions = {'os-volumes': 'fake'}
- bdm = [{'device_name': 'foo1', 'delete_on_termination': 1},
- {'device_name': 'foo2', 'delete_on_termination': True},
- {'device_name': 'foo3', 'delete_on_termination': 'invalid'},
- {'device_name': 'foo4', 'delete_on_termination': 0},
- {'device_name': 'foo5', 'delete_on_termination': False}]
+ bdm = [{'device_name': 'foo1', 'volume_id': 'fake_vol',
+ 'delete_on_termination': 1},
+ {'device_name': 'foo2', 'volume_id': 'fake_vol',
+ 'delete_on_termination': True},
+ {'device_name': 'foo3', 'volume_id': 'fake_vol',
+ 'delete_on_termination': 'invalid'},
+ {'device_name': 'foo4', 'volume_id': 'fake_vol',
+ 'delete_on_termination': 0},
+ {'device_name': 'foo5', 'volume_id': 'fake_vol',
+ 'delete_on_termination': False}]
expected_bdm = [
- {'device_name': 'foo1', 'delete_on_termination': True},
- {'device_name': 'foo2', 'delete_on_termination': True},
- {'device_name': 'foo3', 'delete_on_termination': False},
- {'device_name': 'foo4', 'delete_on_termination': False},
- {'device_name': 'foo5', 'delete_on_termination': False}]
+ {'device_name': 'foo1', 'volume_id': 'fake_vol',
+ 'delete_on_termination': True},
+ {'device_name': 'foo2', 'volume_id': 'fake_vol',
+ 'delete_on_termination': True},
+ {'device_name': 'foo3', 'volume_id': 'fake_vol',
+ 'delete_on_termination': False},
+ {'device_name': 'foo4', 'volume_id': 'fake_vol',
+ 'delete_on_termination': False},
+ {'device_name': 'foo5', 'volume_id': 'fake_vol',
+ 'delete_on_termination': False}]
params = {'block_device_mapping': bdm}
old_create = compute_api.API.create
@@ -2474,7 +2593,11 @@ class ServersControllerCreateTest(test.TestCase):
self.assertEqual(expected_bdm, kwargs['block_device_mapping'])
return old_create(*args, **kwargs)
+ def _validate_bdm(*args, **kwargs):
+ pass
+
self.stubs.Set(compute_api.API, 'create', create)
+ self.stubs.Set(compute_api.API, '_validate_bdm', _validate_bdm)
self._test_create_extra(params)
def test_create_instance_with_user_data_enabled(self):
@@ -4121,7 +4244,7 @@ class ServersViewBuilderTest(test.TestCase):
self.view_builder = views.servers.ViewBuilder()
self.request = fakes.HTTPRequest.blank("/v2")
- def test_get_flavor_valid_instance_type(self):
+ def test_get_flavor_valid_flavor(self):
flavor_bookmark = "http://localhost/fake/flavors/1"
expected = {"id": "1",
"links": [{"rel": "bookmark",
diff --git a/nova/tests/api/openstack/compute/test_v3_extensions.py b/nova/tests/api/openstack/compute/test_v3_extensions.py
new file mode 100644
index 000000000..97429ca45
--- /dev/null
+++ b/nova/tests/api/openstack/compute/test_v3_extensions.py
@@ -0,0 +1,141 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from oslo.config import cfg
+import stevedore
+
+from nova.api import openstack
+from nova.api.openstack import compute
+from nova.api.openstack.compute import plugins
+from nova import exception
+from nova import test
+
+CONF = cfg.CONF
+
+
+class fake_bad_extension(object):
+ name = "fake_bad_extension"
+ alias = "fake-bad"
+
+
+class fake_stevedore_enabled_extensions(object):
+ def __init__(self, namespace, check_func, invoke_on_load=False,
+ invoke_args=(), invoke_kwds={}):
+ self.extensions = []
+
+ def map(self, func, *args, **kwds):
+ pass
+
+ def __iter__(self):
+ return iter(self.extensions)
+
+
+class fake_loaded_extension_info(object):
+ def __init__(self):
+ self.extensions = {}
+
+ def register_extension(self, ext):
+ self.extensions[ext] = ext
+ return True
+
+ def get_extensions(self):
+ return {'core1': None, 'core2': None, 'noncore1': None}
+
+
+class ExtensionLoadingTestCase(test.TestCase):
+
+ def _set_v3_core(self, core_extensions):
+ openstack.API_V3_CORE_EXTENSIONS = core_extensions
+
+ def test_extensions_loaded(self):
+ app = compute.APIRouterV3()
+ self.assertIn('servers', app._loaded_extension_info.extensions)
+
+ def test_check_bad_extension(self):
+ extension_info = plugins.LoadedExtensionInfo()
+ self.assertFalse(extension_info._check_extension(fake_bad_extension))
+
+ def test_extensions_blacklist(self):
+ app = compute.APIRouterV3()
+ self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions)
+ CONF.set_override('extensions_blacklist', 'os-fixed-ips', 'osapi_v3')
+ app = compute.APIRouterV3()
+ self.assertNotIn('os-fixed-ips', app._loaded_extension_info.extensions)
+
+ def test_extensions_whitelist_accept(self):
+ app = compute.APIRouterV3()
+ self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions)
+ CONF.set_override('extensions_whitelist', 'servers,os-fixed-ips',
+ 'osapi_v3')
+ app = compute.APIRouterV3()
+ self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions)
+
+ def test_extensions_whitelist_block(self):
+ app = compute.APIRouterV3()
+ self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions)
+ CONF.set_override('extensions_whitelist', 'servers', 'osapi_v3')
+ app = compute.APIRouterV3()
+ self.assertNotIn('os-fixed-ips', app._loaded_extension_info.extensions)
+
+ def test_blacklist_overrides_whitelist(self):
+ app = compute.APIRouterV3()
+ self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions)
+ CONF.set_override('extensions_whitelist', 'servers,os-fixed-ips',
+ 'osapi_v3')
+ CONF.set_override('extensions_blacklist', 'os-fixed-ips', 'osapi_v3')
+ app = compute.APIRouterV3()
+ self.assertNotIn('os-fixed-ips', app._loaded_extension_info.extensions)
+ self.assertIn('servers', app._loaded_extension_info.extensions)
+ self.assertEqual(len(app._loaded_extension_info.extensions), 1)
+
+ def test_get_missing_core_extensions(self):
+ v3_core = openstack.API_V3_CORE_EXTENSIONS
+ openstack.API_V3_CORE_EXTENSIONS = set(['core1', 'core2'])
+ self.addCleanup(self._set_v3_core, v3_core)
+ self.assertEqual(len(compute.APIRouterV3.get_missing_core_extensions(
+ ['core1', 'core2', 'noncore1'])), 0)
+ missing_core = compute.APIRouterV3.get_missing_core_extensions(
+ ['core1'])
+ self.assertEqual(len(missing_core), 1)
+ self.assertIn('core2', missing_core)
+ missing_core = compute.APIRouterV3.get_missing_core_extensions([])
+ self.assertEqual(len(missing_core), 2)
+ self.assertIn('core1', missing_core)
+ self.assertIn('core2', missing_core)
+ missing_core = compute.APIRouterV3.get_missing_core_extensions(
+ ['noncore1'])
+ self.assertEqual(len(missing_core), 2)
+ self.assertIn('core1', missing_core)
+ self.assertIn('core2', missing_core)
+
+ def test_core_extensions_present(self):
+ self.stubs.Set(stevedore.enabled, 'EnabledExtensionManager',
+ fake_stevedore_enabled_extensions)
+ self.stubs.Set(plugins, 'LoadedExtensionInfo',
+ fake_loaded_extension_info)
+ v3_core = openstack.API_V3_CORE_EXTENSIONS
+ openstack.API_V3_CORE_EXTENSIONS = set(['core1', 'core2'])
+ self.addCleanup(self._set_v3_core, v3_core)
+ # if no core API extensions are missing then an exception will
+ # not be raised when creating an instance of compute.APIRouterV3
+ _ = compute.APIRouterV3()
+
+ def test_core_extensions_missing(self):
+ self.stubs.Set(stevedore.enabled, 'EnabledExtensionManager',
+ fake_stevedore_enabled_extensions)
+ self.stubs.Set(plugins, 'LoadedExtensionInfo',
+ fake_loaded_extension_info)
+ self.assertRaises(exception.CoreAPIMissing, compute.APIRouterV3)
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index d05a35f71..f05561ff2 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -100,6 +100,30 @@ def wsgi_app(inner_app_v2=None, fake_auth_context=None,
return mapper
+def wsgi_app_v3(inner_app_v3=None, fake_auth_context=None,
+ use_no_auth=False, ext_mgr=None, init_only=None):
+ if not inner_app_v3:
+ inner_app_v3 = compute.APIRouterV3(init_only)
+
+ if use_no_auth:
+ api_v3 = openstack_api.FaultWrapper(auth.NoAuthMiddleware(
+ limits.RateLimitingMiddleware(inner_app_v3)))
+ else:
+ if fake_auth_context is not None:
+ ctxt = fake_auth_context
+ else:
+ ctxt = context.RequestContext('fake', 'fake', auth_token=True)
+ api_v3 = openstack_api.FaultWrapper(api_auth.InjectContext(ctxt,
+ limits.RateLimitingMiddleware(inner_app_v3)))
+
+ mapper = urlmap.URLMap()
+ mapper['/v3'] = api_v3
+ # TODO(cyeoh): bp nova-api-core-as-extensions
+ # Still need to implement versions for v3 API
+ # mapper['/'] = openstack_api.FaultWrapper(versions.Versions())
+ return mapper
+
+
def stub_out_key_pair_funcs(stubs, have_key_pair=True):
def key_pair(context, user_id):
return [dict(name='key', public_key='public_key')]
@@ -310,9 +334,22 @@ class HTTPRequest(os_wsgi.Request):
return out
+class HTTPRequestV3(os_wsgi.Request):
+
+ @classmethod
+ def blank(cls, *args, **kwargs):
+ kwargs['base_url'] = 'http://localhost/v3'
+ use_admin_context = kwargs.pop('use_admin_context', False)
+ out = os_wsgi.Request.blank(*args, **kwargs)
+ out.environ['nova.context'] = FakeRequestContext('fake_user', 'fake',
+ is_admin=use_admin_context)
+ return out
+
+
class TestRouter(wsgi.Router):
- def __init__(self, controller):
- mapper = routes.Mapper()
+ def __init__(self, controller, mapper=None):
+ if not mapper:
+ mapper = routes.Mapper()
mapper.resource("test", "tests",
controller=os_wsgi.Resource(controller))
super(TestRouter, self).__init__(mapper)
@@ -423,7 +460,9 @@ def stub_instance(id, user_id=None, project_id=None, host=None,
include_fake_metadata=True, config_drive=None,
power_state=None, nw_cache=None, metadata=None,
security_groups=None, root_device_name=None,
- limit=None, marker=None):
+ limit=None, marker=None,
+ launched_at=datetime.datetime.utcnow(),
+ terminated_at=datetime.datetime.utcnow()):
if user_id is None:
user_id = 'fake_user'
@@ -437,8 +476,8 @@ def stub_instance(id, user_id=None, project_id=None, host=None,
else:
metadata = []
- inst_type = flavors.get_instance_type_by_flavor_id(int(flavor_id))
- sys_meta = flavors.save_instance_type_info({}, inst_type)
+ inst_type = flavors.get_flavor_by_flavor_id(int(flavor_id))
+ sys_meta = flavors.save_flavor_info({}, inst_type)
if host is not None:
host = str(host)
@@ -487,8 +526,8 @@ def stub_instance(id, user_id=None, project_id=None, host=None,
"reservation_id": reservation_id,
"mac_address": "",
"scheduled_at": timeutils.utcnow(),
- "launched_at": timeutils.utcnow(),
- "terminated_at": timeutils.utcnow(),
+ "launched_at": launched_at,
+ "terminated_at": terminated_at,
"availability_zone": "",
"display_name": display_name or server_name,
"display_description": "",
diff --git a/nova/tests/api/openstack/test_mapper.py b/nova/tests/api/openstack/test_mapper.py
new file mode 100644
index 000000000..8b7e60d18
--- /dev/null
+++ b/nova/tests/api/openstack/test_mapper.py
@@ -0,0 +1,48 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import webob
+
+from nova.api import openstack as openstack_api
+from nova import test
+from nova.tests.api.openstack import fakes
+
+
+class MapperTest(test.TestCase):
+ def test_resource_project_prefix(self):
+ class Controller(object):
+ def index(self, req):
+ return 'foo'
+
+ app = fakes.TestRouter(Controller(),
+ openstack_api.ProjectMapper())
+ req = webob.Request.blank('/1234/tests')
+ resp = req.get_response(app)
+ self.assertEqual(resp.body, 'foo')
+ self.assertEqual(resp.status_int, 200)
+
+ def test_resource_no_project_prefix(self):
+ class Controller(object):
+ def index(self, req):
+ return 'foo'
+
+ app = fakes.TestRouter(Controller(),
+ openstack_api.PlainMapper())
+ req = webob.Request.blank('/tests')
+ resp = req.get_response(app)
+ self.assertEqual(resp.body, 'foo')
+ self.assertEqual(resp.status_int, 200)
diff --git a/nova/tests/api/openstack/test_wsgi.py b/nova/tests/api/openstack/test_wsgi.py
index a19204dff..41a80a65c 100644
--- a/nova/tests/api/openstack/test_wsgi.py
+++ b/nova/tests/api/openstack/test_wsgi.py
@@ -171,6 +171,35 @@ class JSONDeserializerTest(test.TestCase):
deserializer = wsgi.JSONDeserializer()
self.assertEqual(deserializer.deserialize(data), as_dict)
+ def test_json_valid_utf8(self):
+ data = """{"server": {"min_count": 1, "flavorRef": "1",
+ "name": "\xe6\xa6\x82\xe5\xbf\xb5",
+ "imageRef": "10bab10c-1304-47d",
+ "max_count": 1}} """
+ as_dict = {
+ 'body': {
+ u'server': {
+ u'min_count': 1, u'flavorRef': u'1',
+ u'name': u'\u6982\u5ff5',
+ u'imageRef': u'10bab10c-1304-47d',
+ u'max_count': 1
+ }
+ }
+ }
+ deserializer = wsgi.JSONDeserializer()
+ self.assertEqual(deserializer.deserialize(data), as_dict)
+
+ def test_json_invalid_utf8(self):
+ """ Send invalid utf-8 to JSONDeserializer"""
+ data = """{"server": {"min_count": 1, "flavorRef": "1",
+ "name": "\xf0\x28\x8c\x28",
+ "imageRef": "10bab10c-1304-47d",
+ "max_count": 1}} """
+
+ deserializer = wsgi.JSONDeserializer()
+ self.assertRaises(exception.MalformedRequestBody,
+ deserializer.deserialize, data)
+
class XMLDeserializerTest(test.TestCase):
def test_xml(self):
@@ -202,6 +231,19 @@ class XMLDeserializerTest(test.TestCase):
deserializer = wsgi.XMLDeserializer()
self.assertEqual(deserializer.deserialize(xml), as_dict)
+ def test_xml_valid_utf8(self):
+ xml = """ <a><name>\xe6\xa6\x82\xe5\xbf\xb5</name></a> """
+ deserializer = wsgi.XMLDeserializer()
+ as_dict = {'body': {u'a': {u'name': u'\u6982\u5ff5'}}}
+ self.assertEqual(deserializer.deserialize(xml), as_dict)
+
+ def test_xml_invalid_utf8(self):
+ """ Send invalid utf-8 to XMLDeserializer"""
+ xml = """ <a><name>\xf0\x28\x8c\x28</name></a> """
+ deserializer = wsgi.XMLDeserializer()
+ self.assertRaises(exception.MalformedRequestBody,
+ deserializer.deserialize, xml)
+
class ResourceTest(test.TestCase):
def test_resource_call(self):
@@ -407,6 +449,49 @@ class ResourceTest(test.TestCase):
self.assertEqual(content_type, 'application/json')
self.assertEqual(body, 'foo')
+ def test_get_request_id_with_dict_response_body(self):
+ class Controller(wsgi.Controller):
+ def index(self, req):
+ return {'foo': 'bar'}
+
+ req = fakes.HTTPRequest.blank('/tests')
+ context = req.environ['nova.context']
+ app = fakes.TestRouter(Controller())
+ response = req.get_response(app)
+ self.assertEqual(response.headers['x-compute-request-id'],
+ context.request_id)
+ self.assertEqual(response.body, '{"foo": "bar"}')
+ self.assertEqual(response.status_int, 200)
+
+ def test_no_request_id_with_str_response_body(self):
+ class Controller(wsgi.Controller):
+ def index(self, req):
+ return 'foo'
+
+ req = fakes.HTTPRequest.blank('/tests')
+ app = fakes.TestRouter(Controller())
+ response = req.get_response(app)
+ # NOTE(alaski): This test is really to ensure that a str response
+ # doesn't error. Not having a request_id header is a side effect of
+ # our wsgi setup, ideally it would be there.
+ self.assertFalse(hasattr(response.headers, 'x-compute-request-id'))
+ self.assertEqual(response.body, 'foo')
+ self.assertEqual(response.status_int, 200)
+
+ def test_get_request_id_no_response_body(self):
+ class Controller(object):
+ def index(self, req):
+ pass
+
+ req = fakes.HTTPRequest.blank('/tests')
+ context = req.environ['nova.context']
+ app = fakes.TestRouter(Controller())
+ response = req.get_response(app)
+ self.assertEqual(response.headers['x-compute-request-id'],
+ context.request_id)
+ self.assertEqual(response.body, '')
+ self.assertEqual(response.status_int, 200)
+
def test_deserialize_badtype(self):
class Controller(object):
def index(self, req, pants=None):
@@ -780,6 +865,33 @@ class ResourceTest(test.TestCase):
except wsgi.Fault as fault:
self.assertEqual(400, fault.status_int)
+ def test_resource_valid_utf8_body(self):
+ class Controller(object):
+ def index(self, req, body):
+ return body
+
+ req = webob.Request.blank('/tests')
+ body = """ {"name": "\xe6\xa6\x82\xe5\xbf\xb5" } """
+ expected_body = '{"name": "\\u6982\\u5ff5"}'
+ req.body = body
+ req.headers['Content-Type'] = 'application/json'
+ app = fakes.TestRouter(Controller())
+ response = req.get_response(app)
+ self.assertEqual(response.body, expected_body)
+ self.assertEqual(response.status_int, 200)
+
+ def test_resource_invalid_utf8(self):
+ class Controller(object):
+ def index(self, req, body):
+ return body
+
+ req = webob.Request.blank('/tests')
+ body = """ {"name": "\xf0\x28\x8c\x28" } """
+ req.body = body
+ req.headers['Content-Type'] = 'application/json'
+ app = fakes.TestRouter(Controller())
+ self.assertRaises(UnicodeDecodeError, req.get_response, app)
+
class ResponseObjectTest(test.TestCase):
def test_default_code(self):
diff --git a/nova/tests/cells/test_cells_filters.py b/nova/tests/cells/test_cells_filters.py
new file mode 100644
index 000000000..e11e6c640
--- /dev/null
+++ b/nova/tests/cells/test_cells_filters.py
@@ -0,0 +1,121 @@
+# Copyright (c) 2012-2013 Rackspace Hosting
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+"""
+Unit Tests for cells scheduler filters.
+"""
+
+from nova.cells import filters
+from nova import context
+from nova import test
+from nova.tests.cells import fakes
+
+
+class FiltersTestCase(test.TestCase):
+ """Makes sure the proper filters are in the directory."""
+
+ def test_all_filters(self):
+ filter_classes = filters.all_filters()
+ class_names = [cls.__name__ for cls in filter_classes]
+ self.assertIn("TargetCellFilter", class_names)
+
+
+class _FilterTestClass(test.TestCase):
+ """Base class for testing individual filter plugins."""
+ filter_cls_name = None
+
+ def setUp(self):
+ super(_FilterTestClass, self).setUp()
+ fakes.init(self)
+ self.msg_runner = fakes.get_message_runner('api-cell')
+ self.scheduler = self.msg_runner.scheduler
+ self.my_cell_state = self.msg_runner.state_manager.get_my_state()
+ self.filter_handler = filters.CellFilterHandler()
+ self.filter_classes = self.filter_handler.get_matching_classes(
+ [self.filter_cls_name])
+ self.context = context.RequestContext('fake', 'fake',
+ is_admin=True)
+
+ def _filter_cells(self, cells, filter_properties):
+ return self.filter_handler.get_filtered_objects(self.filter_classes,
+ cells,
+ filter_properties)
+
+
+class TestTargetCellFilter(_FilterTestClass):
+ filter_cls_name = 'nova.cells.filters.target_cell.TargetCellFilter'
+
+ def test_missing_scheduler_hints(self):
+ cells = [1, 2, 3]
+ # No filtering
+ filter_props = {'context': self.context}
+ self.assertEqual(cells, self._filter_cells(cells, filter_props))
+
+ def test_no_target_cell_hint(self):
+ cells = [1, 2, 3]
+ filter_props = {'scheduler_hints': {},
+ 'context': self.context}
+ # No filtering
+ self.assertEqual(cells, self._filter_cells(cells, filter_props))
+
+ def test_target_cell_specified_me(self):
+ cells = [1, 2, 3]
+ target_cell = 'fake!cell!path'
+ current_cell = 'fake!cell!path'
+ filter_props = {'scheduler_hints': {'target_cell': target_cell},
+ 'routing_path': current_cell,
+ 'scheduler': self.scheduler,
+ 'context': self.context}
+ # Only myself in the list.
+ self.assertEqual([self.my_cell_state],
+ self._filter_cells(cells, filter_props))
+
+ def test_target_cell_specified_me_but_not_admin(self):
+ ctxt = context.RequestContext('fake', 'fake')
+ cells = [1, 2, 3]
+ target_cell = 'fake!cell!path'
+ current_cell = 'fake!cell!path'
+ filter_props = {'scheduler_hints': {'target_cell': target_cell},
+ 'routing_path': current_cell,
+ 'scheduler': self.scheduler,
+ 'context': ctxt}
+ # No filtering, because not an admin.
+ self.assertEqual(cells, self._filter_cells(cells, filter_props))
+
+ def test_target_cell_specified_not_me(self):
+ info = {}
+
+ def _fake_sched_run_instance(ctxt, cell, sched_kwargs):
+ info['ctxt'] = ctxt
+ info['cell'] = cell
+ info['sched_kwargs'] = sched_kwargs
+
+ self.stubs.Set(self.msg_runner, 'schedule_run_instance',
+ _fake_sched_run_instance)
+ cells = [1, 2, 3]
+ target_cell = 'fake!cell!path'
+ current_cell = 'not!the!same'
+ filter_props = {'scheduler_hints': {'target_cell': target_cell},
+ 'routing_path': current_cell,
+ 'scheduler': self.scheduler,
+ 'context': self.context,
+ 'host_sched_kwargs': 'meow'}
+ # None is returned to bypass further scheduling.
+ self.assertEqual(None,
+ self._filter_cells(cells, filter_props))
+ # The filter should have re-scheduled to the child cell itself.
+ expected_info = {'ctxt': self.context,
+ 'cell': 'fake!cell!path',
+ 'sched_kwargs': 'meow'}
+ self.assertEqual(expected_info, info)
diff --git a/nova/tests/cells/test_cells_manager.py b/nova/tests/cells/test_cells_manager.py
index 137d48ff6..4e35cd818 100644
--- a/nova/tests/cells/test_cells_manager.py
+++ b/nova/tests/cells/test_cells_manager.py
@@ -53,6 +53,7 @@ class CellsManagerClassTestCase(test.TestCase):
self.our_cell = 'grandchild-cell1'
self.cells_manager = fakes.get_cells_manager(self.our_cell)
self.msg_runner = self.cells_manager.msg_runner
+ self.state_manager = fakes.get_state_manager(self.our_cell)
self.driver = self.cells_manager.driver
self.ctxt = 'fake_context'
@@ -122,6 +123,15 @@ class CellsManagerClassTestCase(test.TestCase):
self.cells_manager.schedule_run_instance(self.ctxt,
host_sched_kwargs=host_sched_kwargs)
+ def test_build_instances(self):
+ build_inst_kwargs = {'instances': [1, 2]}
+ self.mox.StubOutWithMock(self.msg_runner, 'build_instances')
+ our_cell = self.msg_runner.state_manager.get_my_state()
+ self.msg_runner.build_instances(self.ctxt, our_cell, build_inst_kwargs)
+ self.mox.ReplayAll()
+ self.cells_manager.build_instances(self.ctxt,
+ build_inst_kwargs=build_inst_kwargs)
+
def test_run_compute_api_method(self):
# Args should just be silently passed through
cell_name = 'fake-cell-name'
@@ -504,6 +514,17 @@ class CellsManagerClassTestCase(test.TestCase):
self.cells_manager.consoleauth_delete_tokens(self.ctxt,
instance_uuid=instance_uuid)
+ def test_get_capacities(self):
+ cell_name = 'cell_name'
+ response = {"ram_free":
+ {"units_by_mb": {"64": 20, "128": 10}, "total_mb": 1491}}
+ self.mox.StubOutWithMock(self.state_manager,
+ 'get_capacities')
+ self.state_manager.get_capacities(cell_name).AndReturn(response)
+ self.mox.ReplayAll()
+ self.assertEqual(response,
+ self.cells_manager.get_capacities(self.ctxt, cell_name))
+
def test_validate_console_port(self):
instance_uuid = 'fake-instance-uuid'
cell_name = 'fake-cell-name'
diff --git a/nova/tests/cells/test_cells_messaging.py b/nova/tests/cells/test_cells_messaging.py
index 51a792975..d4d9b052e 100644
--- a/nova/tests/cells/test_cells_messaging.py
+++ b/nova/tests/cells/test_cells_messaging.py
@@ -608,6 +608,16 @@ class CellsTargetedMethodsTestCase(test.TestCase):
self.tgt_cell_name,
host_sched_kwargs)
+ def test_build_instances(self):
+ build_inst_kwargs = {'filter_properties': {},
+ 'key1': 'value1',
+ 'key2': 'value2'}
+ self.mox.StubOutWithMock(self.tgt_scheduler, 'build_instances')
+ self.tgt_scheduler.build_instances(self.ctxt, build_inst_kwargs)
+ self.mox.ReplayAll()
+ self.src_msg_runner.build_instances(self.ctxt, self.tgt_cell_name,
+ build_inst_kwargs)
+
def test_run_compute_api_method(self):
instance_uuid = 'fake_instance_uuid'
@@ -774,6 +784,7 @@ class CellsTargetedMethodsTestCase(test.TestCase):
result = response.value_or_raise()
result.pop('created_at', None)
result.pop('updated_at', None)
+ result.pop('disabled_reason', None)
expected_result = dict(
deleted=0, deleted_at=None,
binary=fake_service['binary'],
@@ -1033,8 +1044,7 @@ class CellsBroadcastMethodsTestCase(test.TestCase):
expected_instance,
update_cells=False)
self.tgt_db_inst.instance_info_cache_update(self.ctxt, 'fake_uuid',
- expected_info_cache,
- update_cells=False)
+ expected_info_cache)
self.mox.ReplayAll()
self.src_msg_runner.instance_update_at_top(self.ctxt, fake_instance)
@@ -1086,8 +1096,7 @@ class CellsBroadcastMethodsTestCase(test.TestCase):
expected_instance,
update_cells=False)
self.tgt_db_inst.instance_info_cache_update(self.ctxt, 'fake_uuid',
- expected_info_cache,
- update_cells=False)
+ expected_info_cache)
self.mox.ReplayAll()
self.src_msg_runner.instance_update_at_top(self.ctxt, fake_instance)
diff --git a/nova/tests/cells/test_cells_rpcapi.py b/nova/tests/cells/test_cells_rpcapi.py
index 76c9f05d3..e44c0be4a 100644
--- a/nova/tests/cells/test_cells_rpcapi.py
+++ b/nova/tests/cells/test_cells_rpcapi.py
@@ -114,6 +114,31 @@ class CellsAPITestCase(test.TestCase):
self._check_result(call_info, 'schedule_run_instance',
expected_args)
+ def test_build_instances(self):
+ call_info = self._stub_rpc_method('cast', None)
+
+ self.cells_rpcapi.build_instances(
+ self.fake_context, instances=['1', '2'],
+ image={'fake': 'image'}, arg1=1, arg2=2, arg3=3)
+
+ expected_args = {'build_inst_kwargs': {'instances': ['1', '2'],
+ 'image': {'fake': 'image'},
+ 'arg1': 1,
+ 'arg2': 2,
+ 'arg3': 3}}
+ self._check_result(call_info, 'build_instances',
+ expected_args, version=1.8)
+
+ def test_get_capacities(self):
+ capacity_info = {"capacity": "info"}
+ call_info = self._stub_rpc_method('call',
+ result=capacity_info)
+ result = self.cells_rpcapi.get_capacities(self.fake_context,
+ cell_name="name")
+ self._check_result(call_info, 'get_capacities',
+ {'cell_name': 'name'}, version='1.9')
+ self.assertEqual(capacity_info, result)
+
def test_instance_update_at_top(self):
fake_info_cache = {'id': 1,
'instance': 'fake_instance',
diff --git a/nova/tests/cells/test_cells_scheduler.py b/nova/tests/cells/test_cells_scheduler.py
index c9e626385..9cd637cdf 100644
--- a/nova/tests/cells/test_cells_scheduler.py
+++ b/nova/tests/cells/test_cells_scheduler.py
@@ -19,16 +19,39 @@ import time
from oslo.config import cfg
+from nova.cells import filters
+from nova.cells import weights
from nova.compute import vm_states
from nova import context
from nova import db
from nova import exception
from nova.openstack.common import uuidutils
+from nova.scheduler import utils as scheduler_utils
from nova import test
from nova.tests.cells import fakes
CONF = cfg.CONF
CONF.import_opt('scheduler_retries', 'nova.cells.scheduler', group='cells')
+CONF.import_opt('scheduler_filter_classes', 'nova.cells.scheduler',
+ group='cells')
+CONF.import_opt('scheduler_weight_classes', 'nova.cells.scheduler',
+ group='cells')
+
+
+class FakeFilterClass1(filters.BaseCellFilter):
+ pass
+
+
+class FakeFilterClass2(filters.BaseCellFilter):
+ pass
+
+
+class FakeWeightClass1(weights.BaseCellWeigher):
+ pass
+
+
+class FakeWeightClass2(weights.BaseCellWeigher):
+ pass
class CellsSchedulerTestCase(test.TestCase):
@@ -36,6 +59,11 @@ class CellsSchedulerTestCase(test.TestCase):
def setUp(self):
super(CellsSchedulerTestCase, self).setUp()
+ self.flags(scheduler_filter_classes=[], scheduler_weight_classes=[],
+ group='cells')
+ self._init_cells_scheduler()
+
+ def _init_cells_scheduler(self):
fakes.init(self)
self.msg_runner = fakes.get_message_runner('api-cell')
self.scheduler = self.msg_runner.scheduler
@@ -46,24 +74,32 @@ class CellsSchedulerTestCase(test.TestCase):
for x in xrange(3):
instance_uuids.append(uuidutils.generate_uuid())
self.instance_uuids = instance_uuids
- self.request_spec = {'instance_uuids': instance_uuids,
- 'other': 'stuff'}
+ self.instances = [{'uuid': uuid} for uuid in instance_uuids]
+ self.request_spec = {
+ 'instance_uuids': instance_uuids,
+ 'instance_properties': 'fake_properties',
+ 'instance_type': 'fake_type',
+ 'image': 'fake_image',
+ 'security_group': 'fake_sec_groups',
+ 'block_device_mapping': 'fake_bdm'}
+ self.build_inst_kwargs = {
+ 'instances': self.instances,
+ 'instance_type': 'fake_type',
+ 'image': 'fake_image',
+ 'filter_properties': {},
+ 'security_group': 'fake_sec_groups',
+ 'block_device_mapping': 'fake_bdm'}
def test_create_instances_here(self):
# Just grab the first instance type
inst_type = db.instance_type_get(self.ctxt, 1)
image = {'properties': {}}
+ instance_uuids = self.instance_uuids
instance_props = {'hostname': 'meow',
'display_name': 'moo',
'image_ref': 'fake_image_ref',
'user_id': self.ctxt.user_id,
'project_id': self.ctxt.project_id}
- request_spec = {'instance_type': inst_type,
- 'image': image,
- 'security_group': ['default'],
- 'block_device_mapping': [],
- 'instance_properties': instance_props,
- 'instance_uuids': self.instance_uuids}
call_info = {'uuids': []}
@@ -73,10 +109,11 @@ class CellsSchedulerTestCase(test.TestCase):
self.stubs.Set(self.msg_runner, 'instance_update_at_top',
_fake_instance_update_at_top)
- self.scheduler._create_instances_here(self.ctxt, request_spec)
- self.assertEqual(self.instance_uuids, call_info['uuids'])
+ self.scheduler._create_instances_here(self.ctxt, instance_uuids,
+ instance_props, inst_type, image, ['default'], [])
+ self.assertEqual(instance_uuids, call_info['uuids'])
- for instance_uuid in self.instance_uuids:
+ for instance_uuid in instance_uuids:
instance = db.instance_get_by_uuid(self.ctxt, instance_uuid)
self.assertEqual('meow', instance['hostname'])
self.assertEqual('moo-%s' % instance['uuid'],
@@ -109,7 +146,8 @@ class CellsSchedulerTestCase(test.TestCase):
self.stubs.Set(self.msg_runner, 'schedule_run_instance',
msg_runner_schedule_run_instance)
- host_sched_kwargs = {'request_spec': self.request_spec}
+ host_sched_kwargs = {'request_spec': self.request_spec,
+ 'filter_properties': {}}
self.msg_runner.schedule_run_instance(self.ctxt,
self.my_cell_state, host_sched_kwargs)
@@ -118,6 +156,48 @@ class CellsSchedulerTestCase(test.TestCase):
child_cells = self.state_manager.get_child_cells()
self.assertIn(call_info['target_cell'], child_cells)
+ def test_build_instances_selects_child_cell(self):
+ # Make sure there's no capacity info so we're sure to
+ # select a child cell
+ our_cell_info = self.state_manager.get_my_state()
+ our_cell_info.capacities = {}
+
+ call_info = {'times': 0}
+
+ orig_fn = self.msg_runner.build_instances
+
+ def msg_runner_build_instances(ctxt, target_cell, build_inst_kwargs):
+ # This gets called twice. Once for our running it
+ # in this cell.. and then it'll get called when the
+ # child cell is picked. So, first time.. just run it
+ # like normal.
+ if not call_info['times']:
+ call_info['times'] += 1
+ return orig_fn(ctxt, target_cell, build_inst_kwargs)
+ call_info['ctxt'] = ctxt
+ call_info['target_cell'] = target_cell
+ call_info['build_inst_kwargs'] = build_inst_kwargs
+
+ def fake_build_request_spec(image, instances):
+ request_spec = {
+ 'instance_uuids': [inst['uuid'] for inst in instances],
+ 'image': image}
+ return request_spec
+
+ self.stubs.Set(self.msg_runner, 'build_instances',
+ msg_runner_build_instances)
+ self.stubs.Set(scheduler_utils, 'build_request_spec',
+ fake_build_request_spec)
+
+ self.msg_runner.build_instances(self.ctxt, self.my_cell_state,
+ self.build_inst_kwargs)
+
+ self.assertEqual(self.ctxt, call_info['ctxt'])
+ self.assertEqual(self.build_inst_kwargs,
+ call_info['build_inst_kwargs'])
+ child_cells = self.state_manager.get_child_cells()
+ self.assertIn(call_info['target_cell'], child_cells)
+
def test_run_instance_selects_current_cell(self):
# Make sure there's no child cells so that we will be
# selected
@@ -125,9 +205,16 @@ class CellsSchedulerTestCase(test.TestCase):
call_info = {}
- def fake_create_instances_here(ctxt, request_spec):
+ def fake_create_instances_here(ctxt, instance_uuids,
+ instance_properties, instance_type, image, security_groups,
+ block_device_mapping):
call_info['ctxt'] = ctxt
- call_info['request_spec'] = request_spec
+ call_info['instance_uuids'] = instance_uuids
+ call_info['instance_properties'] = instance_properties
+ call_info['instance_type'] = instance_type
+ call_info['image'] = image
+ call_info['security_groups'] = security_groups
+ call_info['block_device_mapping'] = block_device_mapping
def fake_rpc_run_instance(ctxt, **host_sched_kwargs):
call_info['host_sched_kwargs'] = host_sched_kwargs
@@ -138,22 +225,85 @@ class CellsSchedulerTestCase(test.TestCase):
'run_instance', fake_rpc_run_instance)
host_sched_kwargs = {'request_spec': self.request_spec,
+ 'filter_properties': {},
'other': 'stuff'}
self.msg_runner.schedule_run_instance(self.ctxt,
self.my_cell_state, host_sched_kwargs)
self.assertEqual(self.ctxt, call_info['ctxt'])
- self.assertEqual(self.request_spec, call_info['request_spec'])
self.assertEqual(host_sched_kwargs, call_info['host_sched_kwargs'])
+ self.assertEqual(self.instance_uuids, call_info['instance_uuids'])
+ self.assertEqual(self.request_spec['instance_properties'],
+ call_info['instance_properties'])
+ self.assertEqual(self.request_spec['instance_type'],
+ call_info['instance_type'])
+ self.assertEqual(self.request_spec['image'], call_info['image'])
+ self.assertEqual(self.request_spec['security_group'],
+ call_info['security_groups'])
+ self.assertEqual(self.request_spec['block_device_mapping'],
+ call_info['block_device_mapping'])
+
+ def test_build_instances_selects_current_cell(self):
+ # Make sure there's no child cells so that we will be
+ # selected
+ self.state_manager.child_cells = {}
+
+ call_info = {}
+
+ def fake_create_instances_here(ctxt, instance_uuids,
+ instance_properties, instance_type, image, security_groups,
+ block_device_mapping):
+ call_info['ctxt'] = ctxt
+ call_info['instance_uuids'] = instance_uuids
+ call_info['instance_properties'] = instance_properties
+ call_info['instance_type'] = instance_type
+ call_info['image'] = image
+ call_info['security_groups'] = security_groups
+ call_info['block_device_mapping'] = block_device_mapping
+
+ def fake_rpc_build_instances(ctxt, **build_inst_kwargs):
+ call_info['build_inst_kwargs'] = build_inst_kwargs
+
+ def fake_build_request_spec(image, instances):
+ request_spec = {
+ 'instance_uuids': [inst['uuid'] for inst in instances],
+ 'image': image}
+ return request_spec
+
+ self.stubs.Set(self.scheduler, '_create_instances_here',
+ fake_create_instances_here)
+ self.stubs.Set(self.scheduler.compute_task_api,
+ 'build_instances', fake_rpc_build_instances)
+ self.stubs.Set(scheduler_utils, 'build_request_spec',
+ fake_build_request_spec)
+
+ self.msg_runner.build_instances(self.ctxt, self.my_cell_state,
+ self.build_inst_kwargs)
+
+ self.assertEqual(self.ctxt, call_info['ctxt'])
+ self.assertEqual(self.instance_uuids, call_info['instance_uuids'])
+ self.assertEqual(self.build_inst_kwargs['instances'][0],
+ call_info['instance_properties'])
+ self.assertEqual(self.build_inst_kwargs['instance_type'],
+ call_info['instance_type'])
+ self.assertEqual(self.build_inst_kwargs['image'], call_info['image'])
+ self.assertEqual(self.build_inst_kwargs['security_group'],
+ call_info['security_groups'])
+ self.assertEqual(self.build_inst_kwargs['block_device_mapping'],
+ call_info['block_device_mapping'])
+ self.assertEqual(self.build_inst_kwargs,
+ call_info['build_inst_kwargs'])
+ self.assertEqual(self.instance_uuids, call_info['instance_uuids'])
def test_run_instance_retries_when_no_cells_avail(self):
self.flags(scheduler_retries=7, group='cells')
- host_sched_kwargs = {'request_spec': self.request_spec}
+ host_sched_kwargs = {'request_spec': self.request_spec,
+ 'filter_properties': {}}
call_info = {'num_tries': 0, 'errored_uuids': []}
- def fake_run_instance(message, host_sched_kwargs):
+ def fake_grab_target_cells(filter_properties):
call_info['num_tries'] += 1
raise exception.NoCellsAvailable()
@@ -164,7 +314,8 @@ class CellsSchedulerTestCase(test.TestCase):
self.assertEqual(vm_states.ERROR, values['vm_state'])
call_info['errored_uuids'].append(instance_uuid)
- self.stubs.Set(self.scheduler, '_run_instance', fake_run_instance)
+ self.stubs.Set(self.scheduler, '_grab_target_cells',
+ fake_grab_target_cells)
self.stubs.Set(time, 'sleep', fake_sleep)
self.stubs.Set(db, 'instance_update', fake_instance_update)
@@ -174,16 +325,55 @@ class CellsSchedulerTestCase(test.TestCase):
self.assertEqual(8, call_info['num_tries'])
self.assertEqual(self.instance_uuids, call_info['errored_uuids'])
- def test_run_instance_on_random_exception(self):
+ def test_build_instances_retries_when_no_cells_avail(self):
self.flags(scheduler_retries=7, group='cells')
- host_sched_kwargs = {'request_spec': self.request_spec}
+ call_info = {'num_tries': 0, 'errored_uuids': []}
+
+ def fake_grab_target_cells(filter_properties):
+ call_info['num_tries'] += 1
+ raise exception.NoCellsAvailable()
+
+ def fake_sleep(_secs):
+ return
+
+ def fake_instance_update(ctxt, instance_uuid, values):
+ self.assertEqual(vm_states.ERROR, values['vm_state'])
+ call_info['errored_uuids'].append(instance_uuid)
+
+ def fake_build_request_spec(image, instances):
+ request_spec = {
+ 'instance_uuids': [inst['uuid'] for inst in instances],
+ 'image': image}
+ return request_spec
+
+ self.stubs.Set(self.scheduler, '_grab_target_cells',
+ fake_grab_target_cells)
+ self.stubs.Set(time, 'sleep', fake_sleep)
+ self.stubs.Set(db, 'instance_update', fake_instance_update)
+ self.stubs.Set(scheduler_utils, 'build_request_spec',
+ fake_build_request_spec)
+
+ self.msg_runner.build_instances(self.ctxt, self.my_cell_state,
+ self.build_inst_kwargs)
+
+ self.assertEqual(8, call_info['num_tries'])
+ self.assertEqual(self.instance_uuids, call_info['errored_uuids'])
+
+ def test_schedule_method_on_random_exception(self):
+ self.flags(scheduler_retries=7, group='cells')
+
+ instances = [{'uuid': uuid} for uuid in self.instance_uuids]
+ method_kwargs = {
+ 'image': 'fake_image',
+ 'instances': instances,
+ 'filter_properties': {}}
call_info = {'num_tries': 0,
'errored_uuids1': [],
'errored_uuids2': []}
- def fake_run_instance(message, host_sched_kwargs):
+ def fake_grab_target_cells(filter_properties):
call_info['num_tries'] += 1
raise test.TestingException()
@@ -195,14 +385,200 @@ class CellsSchedulerTestCase(test.TestCase):
self.assertEqual(vm_states.ERROR, instance['vm_state'])
call_info['errored_uuids2'].append(instance['uuid'])
- self.stubs.Set(self.scheduler, '_run_instance', fake_run_instance)
+ def fake_build_request_spec(image, instances):
+ request_spec = {
+ 'instance_uuids': [inst['uuid'] for inst in instances],
+ 'image': image}
+ return request_spec
+
+ self.stubs.Set(self.scheduler, '_grab_target_cells',
+ fake_grab_target_cells)
self.stubs.Set(db, 'instance_update', fake_instance_update)
self.stubs.Set(self.msg_runner, 'instance_update_at_top',
- fake_instance_update_at_top)
+ fake_instance_update_at_top)
+ self.stubs.Set(scheduler_utils, 'build_request_spec',
+ fake_build_request_spec)
- self.msg_runner.schedule_run_instance(self.ctxt,
- self.my_cell_state, host_sched_kwargs)
+ self.msg_runner.build_instances(self.ctxt, self.my_cell_state,
+ method_kwargs)
# Shouldn't retry
self.assertEqual(1, call_info['num_tries'])
self.assertEqual(self.instance_uuids, call_info['errored_uuids1'])
self.assertEqual(self.instance_uuids, call_info['errored_uuids2'])
+
+ def test_cells_filter_args_correct(self):
+ # Re-init our fakes with some filters.
+ our_path = 'nova.tests.cells.test_cells_scheduler'
+ cls_names = [our_path + '.' + 'FakeFilterClass1',
+ our_path + '.' + 'FakeFilterClass2']
+ self.flags(scheduler_filter_classes=cls_names, group='cells')
+ self._init_cells_scheduler()
+
+ # Make sure there's no child cells so that we will be
+ # selected. Makes stubbing easier.
+ self.state_manager.child_cells = {}
+
+ call_info = {}
+
+ def fake_create_instances_here(ctxt, instance_uuids,
+ instance_properties, instance_type, image, security_groups,
+ block_device_mapping):
+ call_info['ctxt'] = ctxt
+ call_info['instance_uuids'] = instance_uuids
+ call_info['instance_properties'] = instance_properties
+ call_info['instance_type'] = instance_type
+ call_info['image'] = image
+ call_info['security_groups'] = security_groups
+ call_info['block_device_mapping'] = block_device_mapping
+
+ def fake_rpc_run_instance(ctxt, **host_sched_kwargs):
+ call_info['host_sched_kwargs'] = host_sched_kwargs
+
+ def fake_get_filtered_objs(filter_classes, cells, filt_properties):
+ call_info['filt_classes'] = filter_classes
+ call_info['filt_cells'] = cells
+ call_info['filt_props'] = filt_properties
+ return cells
+
+ self.stubs.Set(self.scheduler, '_create_instances_here',
+ fake_create_instances_here)
+ self.stubs.Set(self.scheduler.scheduler_rpcapi,
+ 'run_instance', fake_rpc_run_instance)
+ filter_handler = self.scheduler.filter_handler
+ self.stubs.Set(filter_handler, 'get_filtered_objects',
+ fake_get_filtered_objs)
+
+ host_sched_kwargs = {'request_spec': self.request_spec,
+ 'filter_properties': {},
+ 'other': 'stuff'}
+
+ self.msg_runner.schedule_run_instance(self.ctxt,
+ self.my_cell_state, host_sched_kwargs)
+ # Our cell was selected.
+ self.assertEqual(self.ctxt, call_info['ctxt'])
+ self.assertEqual(self.instance_uuids, call_info['instance_uuids'])
+ self.assertEqual(self.request_spec['instance_properties'],
+ call_info['instance_properties'])
+ self.assertEqual(self.request_spec['instance_type'],
+ call_info['instance_type'])
+ self.assertEqual(self.request_spec['image'], call_info['image'])
+ self.assertEqual(self.request_spec['security_group'],
+ call_info['security_groups'])
+ self.assertEqual(self.request_spec['block_device_mapping'],
+ call_info['block_device_mapping'])
+ self.assertEqual(host_sched_kwargs, call_info['host_sched_kwargs'])
+ # Filter args are correct
+ expected_filt_props = {'context': self.ctxt,
+ 'scheduler': self.scheduler,
+ 'routing_path': self.my_cell_state.name,
+ 'host_sched_kwargs': host_sched_kwargs,
+ 'request_spec': self.request_spec}
+ self.assertEqual(expected_filt_props, call_info['filt_props'])
+ self.assertEqual([FakeFilterClass1, FakeFilterClass2],
+ call_info['filt_classes'])
+ self.assertEqual([self.my_cell_state], call_info['filt_cells'])
+
+ def test_cells_filter_returning_none(self):
+ # Re-init our fakes with some filters.
+ our_path = 'nova.tests.cells.test_cells_scheduler'
+ cls_names = [our_path + '.' + 'FakeFilterClass1',
+ our_path + '.' + 'FakeFilterClass2']
+ self.flags(scheduler_filter_classes=cls_names, group='cells')
+ self._init_cells_scheduler()
+
+ # Make sure there's no child cells so that we will be
+ # selected. Makes stubbing easier.
+ self.state_manager.child_cells = {}
+
+ call_info = {'scheduled': False}
+
+ def fake_create_instances_here(ctxt, request_spec):
+ # Should not be called
+ call_info['scheduled'] = True
+
+ def fake_get_filtered_objs(filter_classes, cells, filt_properties):
+ # Should cause scheduling to be skipped. Means that the
+ # filter did it.
+ return None
+
+ self.stubs.Set(self.scheduler, '_create_instances_here',
+ fake_create_instances_here)
+ filter_handler = self.scheduler.filter_handler
+ self.stubs.Set(filter_handler, 'get_filtered_objects',
+ fake_get_filtered_objs)
+
+ self.msg_runner.schedule_run_instance(self.ctxt,
+ self.my_cell_state, {})
+ self.assertFalse(call_info['scheduled'])
+
+ def test_cells_weight_args_correct(self):
+ # Re-init our fakes with some filters.
+ our_path = 'nova.tests.cells.test_cells_scheduler'
+ cls_names = [our_path + '.' + 'FakeWeightClass1',
+ our_path + '.' + 'FakeWeightClass2']
+ self.flags(scheduler_weight_classes=cls_names, group='cells')
+ self._init_cells_scheduler()
+
+ # Make sure there's no child cells so that we will be
+ # selected. Makes stubbing easier.
+ self.state_manager.child_cells = {}
+
+ call_info = {}
+
+ def fake_create_instances_here(ctxt, instance_uuids,
+ instance_properties, instance_type, image, security_groups,
+ block_device_mapping):
+ call_info['ctxt'] = ctxt
+ call_info['instance_uuids'] = instance_uuids
+ call_info['instance_properties'] = instance_properties
+ call_info['instance_type'] = instance_type
+ call_info['image'] = image
+ call_info['security_groups'] = security_groups
+ call_info['block_device_mapping'] = block_device_mapping
+
+ def fake_rpc_run_instance(ctxt, **host_sched_kwargs):
+ call_info['host_sched_kwargs'] = host_sched_kwargs
+
+ def fake_get_weighed_objs(weight_classes, cells, filt_properties):
+ call_info['weight_classes'] = weight_classes
+ call_info['weight_cells'] = cells
+ call_info['weight_props'] = filt_properties
+ return [weights.WeightedCell(cells[0], 0.0)]
+
+ self.stubs.Set(self.scheduler, '_create_instances_here',
+ fake_create_instances_here)
+ self.stubs.Set(self.scheduler.scheduler_rpcapi,
+ 'run_instance', fake_rpc_run_instance)
+ weight_handler = self.scheduler.weight_handler
+ self.stubs.Set(weight_handler, 'get_weighed_objects',
+ fake_get_weighed_objs)
+
+ host_sched_kwargs = {'request_spec': self.request_spec,
+ 'filter_properties': {},
+ 'other': 'stuff'}
+
+ self.msg_runner.schedule_run_instance(self.ctxt,
+ self.my_cell_state, host_sched_kwargs)
+ # Our cell was selected.
+ self.assertEqual(self.ctxt, call_info['ctxt'])
+ self.assertEqual(self.instance_uuids, call_info['instance_uuids'])
+ self.assertEqual(self.request_spec['instance_properties'],
+ call_info['instance_properties'])
+ self.assertEqual(self.request_spec['instance_type'],
+ call_info['instance_type'])
+ self.assertEqual(self.request_spec['image'], call_info['image'])
+ self.assertEqual(self.request_spec['security_group'],
+ call_info['security_groups'])
+ self.assertEqual(self.request_spec['block_device_mapping'],
+ call_info['block_device_mapping'])
+ self.assertEqual(host_sched_kwargs, call_info['host_sched_kwargs'])
+ # Weight args are correct
+ expected_filt_props = {'context': self.ctxt,
+ 'scheduler': self.scheduler,
+ 'routing_path': self.my_cell_state.name,
+ 'host_sched_kwargs': host_sched_kwargs,
+ 'request_spec': self.request_spec}
+ self.assertEqual(expected_filt_props, call_info['weight_props'])
+ self.assertEqual([FakeWeightClass1, FakeWeightClass2],
+ call_info['weight_classes'])
+ self.assertEqual([self.my_cell_state], call_info['weight_cells'])
diff --git a/nova/tests/cells/test_cells_state_manager.py b/nova/tests/cells/test_cells_state_manager.py
index 078578926..03dc37ed4 100644
--- a/nova/tests/cells/test_cells_state_manager.py
+++ b/nova/tests/cells/test_cells_state_manager.py
@@ -13,11 +13,13 @@
# License for the specific language governing permissions and limitations
# under the License.
"""
-Tests For CellsStateManager
+Tests For CellStateManager
"""
from nova.cells import state
from nova import db
+from nova.db.sqlalchemy import models
+from nova import exception
from nova import test
@@ -120,9 +122,47 @@ class TestCellsStateManager(test.TestCase):
units = 2 # 2 on host 3
self.assertEqual(units, cap['disk_free']['units_by_mb'][str(sz)])
- def _capacity(self, reserve_percent):
+ def _get_state_manager(self, reserve_percent=0.0):
self.flags(reserve_percent=reserve_percent, group='cells')
+ return state.CellStateManager()
- mgr = state.CellStateManager()
- my_state = mgr.get_my_state()
+ def _capacity(self, reserve_percent):
+ state_manager = self._get_state_manager(reserve_percent)
+ my_state = state_manager.get_my_state()
return my_state.capacities
+
+
+class TestCellsGetCapacity(TestCellsStateManager):
+ def setUp(self):
+ super(TestCellsGetCapacity, self).setUp()
+ self.capacities = {"ram_free": 1234}
+ self.state_manager = self._get_state_manager()
+ cell = models.Cell(name="cell_name")
+ other_cell = models.Cell(name="other_cell_name")
+ cell.capacities = self.capacities
+ other_cell.capacities = self.capacities
+ self.stubs.Set(self.state_manager, 'child_cells',
+ {"cell_name": cell,
+ "other_cell_name": other_cell})
+
+ def test_get_cell_capacity_for_all_cells(self):
+ self.stubs.Set(self.state_manager.my_cell_state, 'capacities',
+ self.capacities)
+ capacities = self.state_manager.get_capacities()
+ self.assertEqual({"ram_free": 3702}, capacities)
+
+ def test_get_cell_capacity_for_the_parent_cell(self):
+ self.stubs.Set(self.state_manager.my_cell_state, 'capacities',
+ self.capacities)
+ capacities = self.state_manager.\
+ get_capacities(self.state_manager.my_cell_state.name)
+ self.assertEqual({"ram_free": 3702}, capacities)
+
+ def test_get_cell_capacity_for_a_cell(self):
+ self.assertEqual(self.capacities,
+ self.state_manager.get_capacities(cell_name="cell_name"))
+
+ def test_get_cell_capacity_for_non_existing_cell(self):
+ self.assertRaises(exception.CellNotFound,
+ self.state_manager.get_capacities,
+ cell_name="invalid_cell_name")
diff --git a/nova/tests/cells/test_cells_weights.py b/nova/tests/cells/test_cells_weights.py
new file mode 100644
index 000000000..38618bc64
--- /dev/null
+++ b/nova/tests/cells/test_cells_weights.py
@@ -0,0 +1,217 @@
+# Copyright (c) 2012 Openstack, LLC
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+"""
+Unit Tests for testing the cells weight algorithms.
+
+Cells with higher weights should be given priority for new builds.
+"""
+
+import datetime
+
+from nova.cells import state
+from nova.cells import weights
+from nova.openstack.common import timeutils
+from nova import test
+
+
+class FakeCellState(state.CellState):
+ def __init__(self, cell_name):
+ super(FakeCellState, self).__init__(cell_name)
+ self.capacities['ram_free'] = {'total_mb': 0,
+ 'units_by_mb': {}}
+ self.db_info = {}
+
+ def _update_ram_free(self, *args):
+ ram_free = self.capacities['ram_free']
+ for ram_size, units in args:
+ ram_free['total_mb'] += units * ram_size
+ ram_free['units_by_mb'][str(ram_size)] = units
+
+
+def _get_fake_cells():
+
+ cell1 = FakeCellState('cell1')
+ cell1._update_ram_free((512, 1), (1024, 4), (2048, 3))
+ cell1.db_info['weight_offset'] = -200.0
+ cell2 = FakeCellState('cell2')
+ cell2._update_ram_free((512, 2), (1024, 3), (2048, 4))
+ cell2.db_info['weight_offset'] = -200.1
+ cell3 = FakeCellState('cell3')
+ cell3._update_ram_free((512, 3), (1024, 2), (2048, 1))
+ cell3.db_info['weight_offset'] = 400.0
+ cell4 = FakeCellState('cell4')
+ cell4._update_ram_free((512, 4), (1024, 1), (2048, 2))
+ cell4.db_info['weight_offset'] = 300.0
+
+ return [cell1, cell2, cell3, cell4]
+
+
+class CellsWeightsTestCase(test.TestCase):
+ """Makes sure the proper weighers are in the directory."""
+
+ def test_all_weighers(self):
+ weighers = weights.all_weighers()
+ # Check at least a couple that we expect are there
+ self.assertTrue(len(weighers) >= 2)
+ class_names = [cls.__name__ for cls in weighers]
+ self.assertIn('WeightOffsetWeigher', class_names)
+ self.assert_('RamByInstanceTypeWeigher', class_names)
+
+
+class _WeigherTestClass(test.TestCase):
+ """Base class for testing individual weigher plugins."""
+ weigher_cls_name = None
+
+ def setUp(self):
+ super(_WeigherTestClass, self).setUp()
+ self.weight_handler = weights.CellWeightHandler()
+ self.weight_classes = self.weight_handler.get_matching_classes(
+ [self.weigher_cls_name])
+
+ def _get_weighed_cells(self, cells, weight_properties):
+ return self.weight_handler.get_weighed_objects(self.weight_classes,
+ cells, weight_properties)
+
+
+class RAMByInstanceTypeWeigherTestClass(_WeigherTestClass):
+
+ weigher_cls_name = ('nova.cells.weights.ram_by_instance_type.'
+ 'RamByInstanceTypeWeigher')
+
+ def test_default_spreading(self):
+ """Test that cells with more ram available return a higher weight."""
+ cells = _get_fake_cells()
+ # Simulate building a new 512MB instance.
+ instance_type = {'memory_mb': 512}
+ weight_properties = {'request_spec': {'instance_type': instance_type}}
+ weighed_cells = self._get_weighed_cells(cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+ resulting_cells = [weighed_cell.obj for weighed_cell in weighed_cells]
+ expected_cells = [cells[3], cells[2], cells[1], cells[0]]
+ self.assertEqual(expected_cells, resulting_cells)
+
+ # Simulate building a new 1024MB instance.
+ instance_type = {'memory_mb': 1024}
+ weight_properties = {'request_spec': {'instance_type': instance_type}}
+ weighed_cells = self._get_weighed_cells(cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+ resulting_cells = [weighed_cell.obj for weighed_cell in weighed_cells]
+ expected_cells = [cells[0], cells[1], cells[2], cells[3]]
+ self.assertEqual(expected_cells, resulting_cells)
+
+ # Simulate building a new 2048MB instance.
+ instance_type = {'memory_mb': 2048}
+ weight_properties = {'request_spec': {'instance_type': instance_type}}
+ weighed_cells = self._get_weighed_cells(cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+ resulting_cells = [weighed_cell.obj for weighed_cell in weighed_cells]
+ expected_cells = [cells[1], cells[0], cells[3], cells[2]]
+ self.assertEqual(expected_cells, resulting_cells)
+
+ def test_negative_multiplier(self):
+ """Test that cells with less ram available return a higher weight."""
+ self.flags(ram_weight_multiplier=-1.0, group='cells')
+ cells = _get_fake_cells()
+ # Simulate building a new 512MB instance.
+ instance_type = {'memory_mb': 512}
+ weight_properties = {'request_spec': {'instance_type': instance_type}}
+ weighed_cells = self._get_weighed_cells(cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+ resulting_cells = [weighed_cell.obj for weighed_cell in weighed_cells]
+ expected_cells = [cells[0], cells[1], cells[2], cells[3]]
+ self.assertEqual(expected_cells, resulting_cells)
+
+ # Simulate building a new 1024MB instance.
+ instance_type = {'memory_mb': 1024}
+ weight_properties = {'request_spec': {'instance_type': instance_type}}
+ weighed_cells = self._get_weighed_cells(cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+ resulting_cells = [weighed_cell.obj for weighed_cell in weighed_cells]
+ expected_cells = [cells[3], cells[2], cells[1], cells[0]]
+ self.assertEqual(expected_cells, resulting_cells)
+
+ # Simulate building a new 2048MB instance.
+ instance_type = {'memory_mb': 2048}
+ weight_properties = {'request_spec': {'instance_type': instance_type}}
+ weighed_cells = self._get_weighed_cells(cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+ resulting_cells = [weighed_cell.obj for weighed_cell in weighed_cells]
+ expected_cells = [cells[2], cells[3], cells[0], cells[1]]
+ self.assertEqual(expected_cells, resulting_cells)
+
+
+class WeightOffsetWeigherTestClass(_WeigherTestClass):
+ """Test the RAMWeigher class."""
+ weigher_cls_name = 'nova.cells.weights.weight_offset.WeightOffsetWeigher'
+
+ def test_weight_offset(self):
+ """Test that cells with higher weight_offsets return higher
+ weights.
+ """
+ cells = _get_fake_cells()
+ weighed_cells = self._get_weighed_cells(cells, {})
+ self.assertEqual(len(weighed_cells), 4)
+ expected_cells = [cells[2], cells[3], cells[0], cells[1]]
+ resulting_cells = [weighed_cell.obj for weighed_cell in weighed_cells]
+ self.assertEqual(expected_cells, resulting_cells)
+
+
+class MuteWeigherTestClass(_WeigherTestClass):
+ weigher_cls_name = 'nova.cells.weights.mute_child.MuteChildWeigher'
+
+ def setUp(self):
+ super(MuteWeigherTestClass, self).setUp()
+ self.flags(mute_weight_multiplier=-10.0, mute_child_interval=100,
+ mute_weight_value=1000.0, group='cells')
+
+ self.now = timeutils.utcnow()
+ timeutils.set_time_override(self.now)
+
+ self.cells = _get_fake_cells()
+ for cell in self.cells:
+ cell.last_seen = self.now
+
+ def tearDown(self):
+ super(MuteWeigherTestClass, self).tearDown()
+ timeutils.clear_time_override()
+
+ def test_non_mute(self):
+ weight_properties = {}
+ weighed_cells = self._get_weighed_cells(self.cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+
+ for weighed_cell in weighed_cells:
+ self.assertEqual(0, weighed_cell.weight)
+
+ def test_mutes(self):
+ # make 2 of them mute:
+ self.cells[0].last_seen = (self.cells[0].last_seen -
+ datetime.timedelta(seconds=200))
+ self.cells[1].last_seen = (self.cells[1].last_seen -
+ datetime.timedelta(seconds=200))
+
+ weight_properties = {}
+ weighed_cells = self._get_weighed_cells(self.cells, weight_properties)
+ self.assertEqual(len(weighed_cells), 4)
+
+ for i in range(2):
+ weighed_cell = weighed_cells.pop(0)
+ self.assertEqual(0, weighed_cell.weight)
+ self.assertIn(weighed_cell.obj.name, ['cell3', 'cell4'])
+
+ for i in range(2):
+ weighed_cell = weighed_cells.pop(0)
+ self.assertEqual(1000 * -10.0, weighed_cell.weight)
+ self.assertIn(weighed_cell.obj.name, ['cell1', 'cell2'])
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index 9871c5943..3ff317c32 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -31,6 +31,7 @@ import mox
from oslo.config import cfg
import nova
+from nova import block_device
from nova import compute
from nova.compute import api as compute_api
from nova.compute import flavors
@@ -88,6 +89,15 @@ def nop_report_driver_status(self):
pass
+def get_primitive_instance_by_uuid(context, instance_uuid):
+ """
+ Helper method to get an instance and then convert it to
+ a primitive form using jsonutils.
+ """
+ instance = db.instance_get_by_uuid(context, instance_uuid)
+ return jsonutils.to_primitive(instance)
+
+
class FakeSchedulerAPI(object):
def run_instance(self, ctxt, request_spec, admin_password,
@@ -220,8 +230,8 @@ class BaseTestCase(test.TestCase):
def make_fake_sys_meta():
sys_meta = {}
- inst_type = flavors.get_instance_type_by_name(type_name)
- for key in flavors.system_metadata_instance_type_props:
+ inst_type = flavors.get_flavor_by_name(type_name)
+ for key in flavors.system_metadata_flavor_props:
sys_meta['instance_type_%s' % key] = inst_type[key]
return sys_meta
@@ -229,12 +239,11 @@ class BaseTestCase(test.TestCase):
inst['vm_state'] = vm_states.ACTIVE
inst['image_ref'] = FAKE_IMAGE_REF
inst['reservation_id'] = 'r-fakeres'
- inst['launch_time'] = '10'
inst['user_id'] = self.user_id
inst['project_id'] = self.project_id
inst['host'] = 'fake_host'
inst['node'] = NODENAME
- type_id = flavors.get_instance_type_by_name(type_name)['id']
+ type_id = flavors.get_flavor_by_name(type_name)['id']
inst['instance_type_id'] = type_id
inst['ami_launch_index'] = 0
inst['memory_mb'] = 0
@@ -370,6 +379,27 @@ class ComputeVolumeTestCase(BaseTestCase):
block_device_mapping)
self.assertEqual(self.cinfo.get('serial'), self.volume_id)
+ def test_boot_volume_metadata(self):
+ self.mox.StubOutWithMock(self.compute_api.volume_api, 'get')
+ block_device_mapping = [{
+ 'id': 1,
+ 'no_device': None,
+ 'virtual_name': None,
+ 'snapshot_id': None,
+ 'volume_id': self.volume_id,
+ 'status': 'active',
+ 'device_name': 'vda',
+ 'delete_on_termination': False,
+ 'volume_image_metadata':
+ {'test_key': 'test_value'}
+ }]
+ sentinel = object()
+ self.compute_api.volume_api.get(self.context,
+ self.volume_id).AndReturn(sentinel)
+ self.mox.ReplayAll()
+ vol = self.compute_api._get_volume(self.context, block_device_mapping)
+ self.assertIs(vol, sentinel)
+
def test_poll_volume_usage_disabled(self):
ctxt = 'MockContext'
self.mox.StubOutWithMock(self.compute, '_get_host_volume_bdms')
@@ -386,8 +416,6 @@ class ComputeVolumeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute, '_get_host_volume_bdms')
self.mox.StubOutWithMock(utils, 'last_completed_audit_period')
self.mox.StubOutWithMock(self.compute.driver, 'get_all_volume_usage')
- self.mox.StubOutWithMock(self.compute,
- '_send_volume_usage_notifications')
self.mox.StubOutWithMock(time, 'time')
# Following methods will be called.
utils.last_completed_audit_period().AndReturn((0, 0))
@@ -405,8 +433,6 @@ class ComputeVolumeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute, '_get_host_volume_bdms')
self.mox.StubOutWithMock(utils, 'last_completed_audit_period')
self.mox.StubOutWithMock(self.compute.driver, 'get_all_volume_usage')
- self.mox.StubOutWithMock(self.compute,
- '_send_volume_usage_notifications')
# Following methods are called.
utils.last_completed_audit_period().AndReturn((0, 0))
self.compute._get_host_volume_bdms(ctxt, 'MockHost').AndReturn([])
@@ -425,8 +451,6 @@ class ComputeVolumeTestCase(BaseTestCase):
self.mox.StubOutWithMock(self.compute, '_get_host_volume_bdms')
self.mox.StubOutWithMock(timeutils, 'utcnow')
self.mox.StubOutWithMock(self.compute, '_update_volume_usage_cache')
- self.mox.StubOutWithMock(self.compute,
- '_send_volume_usage_notifications')
self.stubs.Set(self.compute.driver, 'get_all_volume_usage',
lambda x, y: [3, 4])
# All the mocks are called
@@ -434,7 +458,6 @@ class ComputeVolumeTestCase(BaseTestCase):
self.compute._get_host_volume_bdms(ctxt, 'MockHost').AndReturn([1, 2])
timeutils.utcnow().AndReturn(5)
self.compute._update_volume_usage_cache(ctxt, [3, 4], 5)
- self.compute._send_volume_usage_notifications(ctxt, 20)
self.mox.ReplayAll()
CONF.volume_usage_poll_interval = 10
self.compute._last_vol_usage_poll = 0
@@ -444,48 +467,6 @@ class ComputeVolumeTestCase(BaseTestCase):
self.compute._last_vol_usage_poll)
self.mox.UnsetStubs()
- def test_send_volume_usage_notifications(self):
- ctxt = 'MockContext'
- test_notifier.NOTIFICATIONS = []
- self.compute.host = 'MockHost'
- fake_usage = {'tot_last_refreshed': 20,
- 'curr_last_refreshed': 10,
- 'volume_id': 'fake_volume_id',
- 'instance_uuid': 'fake_instance_uuid',
- 'project_id': 'fake_project_id',
- 'user_id': 'fake_user_id',
- 'availability_zone': 'fake-az',
- 'tot_reads': 11,
- 'curr_reads': 22,
- 'tot_read_bytes': 33,
- 'curr_read_bytes': 44,
- 'tot_writes': 55,
- 'curr_writes': 66,
- 'tot_write_bytes': 77,
- 'curr_write_bytes': 88}
-
- self.stubs.Set(self.compute.conductor_api,
- 'vol_get_usage_by_time',
- lambda x, y:
- [db.sqlalchemy.models.VolumeUsage(**fake_usage)])
- self.stubs.Set(self.compute.conductor_api,
- 'instance_get_all_by_filters',
- lambda x, y: [{'project_id': 'fake_project_id',
- 'user_id': 'fake_user_id'}])
-
- self.compute._send_volume_usage_notifications(ctxt, 20)
- self.assertEquals(len(test_notifier.NOTIFICATIONS), 1)
- msg = test_notifier.NOTIFICATIONS[0]
- payload = msg['payload']
- self.assertEquals(payload['instance_id'], 'fake_instance_uuid')
- self.assertEquals(payload['user_id'], 'fake_user_id')
- self.assertEquals(payload['tenant_id'], 'fake_project_id')
- self.assertEquals(payload['reads'], 33)
- self.assertEquals(payload['read_bytes'], 77)
- self.assertEquals(payload['writes'], 121)
- self.assertEquals(payload['write_bytes'], 165)
- self.assertEquals(payload['availability_zone'], 'fake-az')
-
def test_detach_volume_usage(self):
# Test that detach volume update the volume usage cache table correctly
instance = self._create_fake_instance()
@@ -526,8 +507,26 @@ class ComputeVolumeTestCase(BaseTestCase):
# total fields in the volume usage cache.
CONF.volume_usage_poll_interval = 10
self.compute._poll_volume_usage(self.context)
+ # Check that a volume.usage notification was sent
+ self.assertEqual(1, len(test_notifier.NOTIFICATIONS))
+ msg = test_notifier.NOTIFICATIONS[0]
+
self.compute.detach_volume(self.context, 1, instance)
+ # Check that a volume.usage notification was sent
+ self.assertEquals(2, len(test_notifier.NOTIFICATIONS))
+ msg = test_notifier.NOTIFICATIONS[1]
+ self.assertEquals('volume.usage', msg['event_type'])
+ payload = msg['payload']
+ self.assertEquals(instance['uuid'], payload['instance_id'])
+ self.assertEquals('fake', payload['user_id'])
+ self.assertEquals('fake', payload['tenant_id'])
+ self.assertEquals(1, payload['reads'])
+ self.assertEquals(30, payload['read_bytes'])
+ self.assertEquals(1, payload['writes'])
+ self.assertEquals(20, payload['write_bytes'])
+ self.assertEquals(None, payload['availability_zone'])
+
# Check the database for the
volume_usages = db.vol_get_usage_by_time(self.context, 0)
self.assertEqual(1, len(volume_usages))
@@ -549,7 +548,8 @@ class ComputeVolumeTestCase(BaseTestCase):
block_device_mapping = [{
'id': 1,
'no_device': None,
- 'virtual_name': None,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
'snapshot_id': None,
'volume_id': self.volume_id,
'device_name': 'vda',
@@ -1459,7 +1459,7 @@ class ComputeTestCase(BaseTestCase):
orig_sys_metadata=sys_metadata)
self.compute.terminate_instance(self.context, instance=instance)
- def test_rebuild_launch_time(self):
+ def test_rebuild_launched_at_time(self):
# Ensure instance can be rebuilt.
old_time = datetime.datetime(2012, 4, 1)
cur_time = datetime.datetime(2012, 12, 21, 12, 21)
@@ -2160,7 +2160,7 @@ class ComputeTestCase(BaseTestCase):
self.assertEquals(payload['user_id'], self.user_id)
self.assertEquals(payload['instance_id'], inst_ref['uuid'])
self.assertEquals(payload['instance_type'], 'm1.tiny')
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
self.assertEquals(str(payload['instance_type_id']), str(type_id))
self.assertEquals(payload['state'], 'active')
self.assertTrue('display_name' in payload)
@@ -2273,7 +2273,7 @@ class ComputeTestCase(BaseTestCase):
self.assertEquals(payload['user_id'], self.user_id)
self.assertEquals(payload['instance_id'], instance['uuid'])
self.assertEquals(payload['instance_type'], 'm1.tiny')
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
self.assertEquals(str(payload['instance_type_id']), str(type_id))
self.assertTrue('display_name' in payload)
self.assertTrue('created_at' in payload)
@@ -2360,6 +2360,36 @@ class ComputeTestCase(BaseTestCase):
instance=jsonutils.to_primitive(instance),
bdms={})
+ def test_delete_instance_keeps_net_on_power_off_fail(self):
+ self.mox.StubOutWithMock(self.compute.driver, 'destroy')
+ self.mox.StubOutWithMock(self.compute, '_deallocate_network')
+ exp = exception.InstancePowerOffFailure(reason='')
+ self.compute.driver.destroy(mox.IgnoreArg(), mox.IgnoreArg(),
+ mox.IgnoreArg()).AndRaise(exp)
+ # mox will detect if _deallocate_network gets called unexpectedly
+ self.mox.ReplayAll()
+ instance = self._create_fake_instance()
+ self.assertRaises(exception.InstancePowerOffFailure,
+ self.compute._delete_instance,
+ self.context,
+ instance=jsonutils.to_primitive(instance),
+ bdms={})
+
+ def test_delete_instance_loses_net_on_other_fail(self):
+ self.mox.StubOutWithMock(self.compute.driver, 'destroy')
+ self.mox.StubOutWithMock(self.compute, '_deallocate_network')
+ exp = test.TestingException()
+ self.compute.driver.destroy(mox.IgnoreArg(), mox.IgnoreArg(),
+ mox.IgnoreArg()).AndRaise(exp)
+ self.compute._deallocate_network(mox.IgnoreArg(), mox.IgnoreArg())
+ self.mox.ReplayAll()
+ instance = self._create_fake_instance()
+ self.assertRaises(test.TestingException,
+ self.compute._delete_instance,
+ self.context,
+ instance=jsonutils.to_primitive(instance),
+ bdms={})
+
def test_delete_instance_deletes_console_auth_tokens(self):
instance = self._create_fake_instance()
self.flags(vnc_enabled=True)
@@ -2627,11 +2657,23 @@ class ComputeTestCase(BaseTestCase):
self.compute.terminate_instance(self.context, instance,
bdms=None, reservations=resvs)
- def test_finish_resize(self):
- # Contrived test to ensure finish_resize doesn't raise anything.
-
- def fake(*args, **kwargs):
- pass
+ def _test_finish_resize(self, power_on):
+ # Contrived test to ensure finish_resize doesn't raise anything and
+ # also tests resize from ACTIVE or STOPPED state which determines
+ # if the resized instance is powered on or not.
+ self.power_on = power_on
+ self.fake_finish_migration_called = False
+
+ def fake_finish_migration(context, migration, instance, disk_info,
+ network_info, image_meta, resize_instance,
+ block_device_info=None, power_on=True):
+ # nova.conf sets the default flavor to m1.small and the test
+ # sets the default flavor to m1.tiny so they should be different
+ # which makes this a resize
+ self.assertTrue(resize_instance)
+ # ensure the power_on value is what we expect
+ self.assertEqual(self.power_on, power_on)
+ self.fake_finish_migration_called = True
def fake_migration_update(context, id, values):
# Ensure instance status updates is after the migration finish
@@ -2641,13 +2683,20 @@ class ComputeTestCase(BaseTestCase):
self.assertFalse(instance['vm_state'] == vm_states.RESIZED)
self.assertEqual(instance['task_state'], task_states.RESIZE_FINISH)
- self.stubs.Set(self.compute.driver, 'finish_migration', fake)
+ self.stubs.Set(self.compute.driver, 'finish_migration',
+ fake_finish_migration)
self.stubs.Set(db, 'migration_update', fake_migration_update)
reservations = self._ensure_quota_reservations_committed()
- instance = jsonutils.to_primitive(self._create_fake_instance())
- instance_type = flavors.get_default_instance_type()
+ vm_state = None
+ if power_on:
+ vm_state = vm_states.ACTIVE
+ else:
+ vm_state = vm_states.STOPPED
+ params = {'vm_state': vm_state}
+ instance = jsonutils.to_primitive(self._create_fake_instance(params))
+ instance_type = flavors.get_default_flavor()
db.instance_update(self.context, instance["uuid"],
{"task_state": task_states.RESIZE_PREP})
self.compute.prep_resize(self.context, instance=instance,
@@ -2657,12 +2706,27 @@ class ComputeTestCase(BaseTestCase):
self.context.elevated(), instance['uuid'], 'pre-migrating')
db.instance_update(self.context, instance["uuid"],
{"task_state": task_states.RESIZE_MIGRATED})
- instance = db.instance_get_by_uuid(self.context, instance['uuid'])
+ # NOTE(mriedem): make sure prep_resize set old_vm_state correctly
+ inst_ref = get_primitive_instance_by_uuid(self.context,
+ instance['uuid'])
+ sys_meta = utils.metadata_to_dict(inst_ref['system_metadata'])
+ self.assertTrue('old_vm_state' in sys_meta)
+ if power_on:
+ self.assertEqual(vm_states.ACTIVE, sys_meta['old_vm_state'])
+ else:
+ self.assertEqual(vm_states.STOPPED, sys_meta['old_vm_state'])
self.compute.finish_resize(self.context,
migration=jsonutils.to_primitive(migration_ref),
- disk_info={}, image={}, instance=instance,
+ disk_info={}, image={}, instance=inst_ref,
reservations=reservations)
- self.compute.terminate_instance(self.context, instance=instance)
+ self.assertTrue(self.fake_finish_migration_called)
+ self.compute.terminate_instance(self.context, instance=inst_ref)
+
+ def test_finish_resize_from_active(self):
+ self._test_finish_resize(power_on=True)
+
+ def test_finish_resize_from_stopped(self):
+ self._test_finish_resize(power_on=False)
def test_finish_resize_with_volumes(self):
"""Contrived test to ensure finish_resize doesn't raise anything."""
@@ -2727,7 +2791,7 @@ class ComputeTestCase(BaseTestCase):
jsonutils.dumps(connection_info))
# begin resize
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
db.instance_update(self.context, instance["uuid"],
{"task_state": task_states.RESIZE_PREP})
self.compute.prep_resize(self.context, instance=instance,
@@ -2821,7 +2885,7 @@ class ComputeTestCase(BaseTestCase):
reservations = self._ensure_quota_reservations_rolledback()
instance = jsonutils.to_primitive(self._create_fake_instance())
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
self.compute.prep_resize(self.context, instance=instance,
instance_type=instance_type,
image={}, reservations=reservations)
@@ -2899,7 +2963,7 @@ class ComputeTestCase(BaseTestCase):
self.assertEquals(payload['user_id'], self.user_id)
self.assertEquals(payload['instance_id'], inst_ref['uuid'])
self.assertEquals(payload['instance_type'], 'm1.tiny')
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
self.assertEquals(str(payload['instance_type_id']), str(type_id))
self.assertTrue('display_name' in payload)
self.assertTrue('created_at' in payload)
@@ -2915,7 +2979,7 @@ class ComputeTestCase(BaseTestCase):
cur_time = datetime.datetime(2012, 12, 21, 12, 21)
timeutils.set_time_override(old_time)
instance = jsonutils.to_primitive(self._create_fake_instance())
- new_type = flavors.get_instance_type_by_name('m1.small')
+ new_type = flavors.get_flavor_by_name('m1.small')
new_type = jsonutils.to_primitive(new_type)
new_type_id = new_type['id']
self.compute.run_instance(self.context, instance=instance)
@@ -2977,7 +3041,7 @@ class ComputeTestCase(BaseTestCase):
new_instance = db.instance_update(self.context, instance['uuid'],
{'host': 'foo'})
new_instance = jsonutils.to_primitive(new_instance)
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
self.compute.prep_resize(self.context, instance=new_instance,
instance_type=instance_type, image={})
db.migration_get_by_instance_and_status(self.context.elevated(),
@@ -3000,7 +3064,7 @@ class ComputeTestCase(BaseTestCase):
self.assertEquals(payload['user_id'], self.user_id)
self.assertEquals(payload['instance_id'], new_instance['uuid'])
self.assertEquals(payload['instance_type'], 'm1.tiny')
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
self.assertEquals(str(payload['instance_type_id']), str(type_id))
self.assertTrue('display_name' in payload)
self.assertTrue('created_at' in payload)
@@ -3023,7 +3087,7 @@ class ComputeTestCase(BaseTestCase):
new_instance = db.instance_update(self.context, instance['uuid'],
{'host': self.compute.host})
new_instance = jsonutils.to_primitive(new_instance)
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
self.assertRaises(exception.MigrationError, self.compute.prep_resize,
self.context, instance=new_instance,
@@ -3043,7 +3107,7 @@ class ComputeTestCase(BaseTestCase):
new_instance = db.instance_update(self.context, instance['uuid'],
{'host': None})
new_instance = jsonutils.to_primitive(new_instance)
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
self.assertRaises(exception.MigrationError, self.compute.prep_resize,
self.context, instance=new_instance,
@@ -3061,7 +3125,7 @@ class ComputeTestCase(BaseTestCase):
throw_up)
instance = jsonutils.to_primitive(self._create_fake_instance())
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
reservations = self._ensure_quota_reservations_rolledback()
@@ -3099,7 +3163,7 @@ class ComputeTestCase(BaseTestCase):
throw_up)
instance = jsonutils.to_primitive(self._create_fake_instance())
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
reservations = self._ensure_quota_reservations_rolledback()
self.compute.run_instance(self.context, instance=instance)
new_instance = db.instance_update(self.context, instance['uuid'],
@@ -3129,29 +3193,159 @@ class ComputeTestCase(BaseTestCase):
def test_resize_instance(self):
# Ensure instance can be migrated/resized.
instance = jsonutils.to_primitive(self._create_fake_instance())
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
self.compute.run_instance(self.context, instance=instance)
new_instance = db.instance_update(self.context, instance['uuid'],
{'host': 'foo'})
new_instance = jsonutils.to_primitive(new_instance)
+ instance_uuid = new_instance['uuid']
self.compute.prep_resize(self.context, instance=new_instance,
instance_type=instance_type, image={})
migration_ref = db.migration_get_by_instance_and_status(
- self.context.elevated(), new_instance['uuid'], 'pre-migrating')
- db.instance_update(self.context, new_instance['uuid'],
+ self.context.elevated(), instance_uuid, 'pre-migrating')
+
+ # verify 'old_vm_state' was set on system_metadata
+ inst = db.instance_get_by_uuid(self.context, instance_uuid)
+ sys_meta = utils.metadata_to_dict(inst['system_metadata'])
+ self.assertEqual(vm_states.ACTIVE, sys_meta['old_vm_state'])
+
+ db.instance_update(self.context, instance_uuid,
{"task_state": task_states.RESIZE_PREP})
self.compute.resize_instance(self.context, instance=new_instance,
migration=migration_ref, image={},
instance_type=jsonutils.to_primitive(instance_type))
- inst = db.instance_get_by_uuid(self.context, new_instance['uuid'])
+ inst = db.instance_get_by_uuid(self.context, instance_uuid)
self.assertEqual(migration_ref['dest_compute'], inst['host'])
self.compute.terminate_instance(self.context,
instance=jsonutils.to_primitive(inst))
- def test_finish_revert_resize(self):
- # Ensure that the flavor is reverted to the original on revert.
+ def _test_confirm_resize(self, power_on):
+ # Common test case method for confirm_resize
+ def fake(*args, **kwargs):
+ pass
+
+ def fake_confirm_migration_driver(*args, **kwargs):
+ # Confirm the instance uses the new type in finish_resize
+ inst = args[1]
+ sys_meta = utils.metadata_to_dict(inst['system_metadata'])
+ self.assertEqual(sys_meta['instance_type_flavorid'], '3')
+
+ old_vm_state = None
+ if power_on:
+ old_vm_state = vm_states.ACTIVE
+ else:
+ old_vm_state = vm_states.STOPPED
+ params = {'vm_state': old_vm_state}
+ instance = jsonutils.to_primitive(self._create_fake_instance(params))
+
+ self.flags(allow_resize_to_same_host=True)
+ self.stubs.Set(self.compute.driver, 'finish_migration', fake)
+ self.stubs.Set(self.compute.driver, 'confirm_migration',
+ fake_confirm_migration_driver)
+
+ reservations = self._ensure_quota_reservations_committed()
+
+ instance_uuid = instance['uuid']
+
+ self.compute.run_instance(self.context, instance=instance)
+
+ # Confirm the instance size before the resize starts
+ inst_ref = db.instance_get_by_uuid(self.context, instance_uuid)
+ instance_type_ref = db.instance_type_get(self.context,
+ inst_ref['instance_type_id'])
+ self.assertEqual(instance_type_ref['flavorid'], '1')
+
+ new_inst_ref = db.instance_update(self.context, instance_uuid,
+ {'vm_state': old_vm_state})
+
+ new_instance_type_ref = db.instance_type_get_by_flavor_id(
+ self.context, 3)
+ new_instance_type_p = jsonutils.to_primitive(new_instance_type_ref)
+ self.compute.prep_resize(self.context,
+ instance=jsonutils.to_primitive(new_inst_ref),
+ instance_type=new_instance_type_p,
+ image={}, reservations=reservations)
+
+ migration_ref = db.migration_get_by_instance_and_status(
+ self.context.elevated(),
+ inst_ref['uuid'], 'pre-migrating')
+
+ # NOTE(danms): make sure to refresh our inst_ref after prep_resize
+ instance = get_primitive_instance_by_uuid(self.context, instance_uuid)
+ # NOTE(mriedem): ensure prep_resize set old_vm_state in system_metadata
+ sys_meta = utils.metadata_to_dict(instance['system_metadata'])
+ self.assertEqual(old_vm_state, sys_meta['old_vm_state'])
+ db.instance_update(self.context, instance_uuid,
+ {"task_state": task_states.RESIZE_PREP})
+ self.compute.resize_instance(self.context, instance=instance,
+ migration=migration_ref,
+ image={},
+ instance_type=new_instance_type_p)
+ self.compute.finish_resize(self.context,
+ migration=jsonutils.to_primitive(migration_ref),
+ disk_info={}, image={}, instance=instance)
+
+ # Prove that the instance size is now the new size
+ rpcinst = get_primitive_instance_by_uuid(self.context, instance_uuid)
+ instance_type_ref = db.instance_type_get(self.context,
+ rpcinst['instance_type_id'])
+ self.assertEqual(instance_type_ref['flavorid'], '3')
+
+ # Finally, confirm the resize and verify the new flavor is applied
+ db.instance_update(self.context, instance_uuid,
+ {"task_state": None})
+
+ def fake_setup_networks_on_host(cls, ctxt, instance, host,
+ teardown):
+ self.assertEqual(host, migration_ref['source_compute'])
+ inst = db.instance_get_by_uuid(ctxt, instance['uuid'])
+ self.assertEqual('fake-mini', inst['host'])
+ self.assertTrue(teardown)
+
+ self.stubs.Set(network_api.API, 'setup_networks_on_host',
+ fake_setup_networks_on_host)
+
+ def fake_get_power_state(context, instance):
+ if power_on:
+ return power_state.RUNNING
+ else:
+ return power_state.SHUTDOWN
+
+ self.stubs.Set(self.compute, '_get_power_state', fake_get_power_state)
+
+ rpcinst = db.instance_get_by_uuid(self.context, rpcinst['uuid'])
+ self.compute.confirm_resize(self.context, rpcinst, reservations,
+ migration_ref)
+
+ instance = get_primitive_instance_by_uuid(self.context, instance_uuid)
+ self.assertEqual(instance['task_state'], None)
+
+ instance_type_ref = db.instance_type_get(self.context,
+ instance['instance_type_id'])
+ self.assertEqual(instance_type_ref['flavorid'], '3')
+ self.assertEqual('fake-mini', migration_ref['source_compute'])
+ self.assertEqual(old_vm_state, instance['vm_state'])
+ self.compute.terminate_instance(self.context, instance=instance)
+
+ def test_confirm_resize_from_active(self):
+ self._test_confirm_resize(power_on=True)
+
+ def test_confirm_resize_from_stopped(self):
+ self._test_confirm_resize(power_on=False)
+
+ def _test_finish_revert_resize(self, power_on,
+ remove_old_vm_state=False):
+ """
+ Convenience method that does most of the work for the
+ test_finish_revert_resize tests.
+ :param power_on -- True if testing resize from ACTIVE state, False if
+ testing resize from STOPPED state.
+ :param remove_old_vm_state -- True if testing a case where the
+ 'old_vm_state' system_metadata is not present when the
+ finish_revert_resize method is called.
+ """
def fake(*args, **kwargs):
pass
@@ -3161,13 +3355,20 @@ class ComputeTestCase(BaseTestCase):
sys_meta = utils.metadata_to_dict(inst['system_metadata'])
self.assertEqual(sys_meta['instance_type_flavorid'], '1')
+ old_vm_state = None
+ if power_on:
+ old_vm_state = vm_states.ACTIVE
+ else:
+ old_vm_state = vm_states.STOPPED
+ params = {'vm_state': old_vm_state}
+ instance = jsonutils.to_primitive(self._create_fake_instance(params))
+
self.stubs.Set(self.compute.driver, 'finish_migration', fake)
self.stubs.Set(self.compute.driver, 'finish_revert_migration',
fake_finish_revert_migration_driver)
reservations = self._ensure_quota_reservations_committed()
- instance = jsonutils.to_primitive(self._create_fake_instance())
instance_uuid = instance['uuid']
self.compute.run_instance(self.context, instance=instance)
@@ -3178,8 +3379,10 @@ class ComputeTestCase(BaseTestCase):
inst_ref['instance_type_id'])
self.assertEqual(instance_type_ref['flavorid'], '1')
+ old_vm_state = instance['vm_state']
new_inst_ref = db.instance_update(self.context, instance_uuid,
- {'host': 'foo'})
+ {'host': 'foo',
+ 'vm_state': old_vm_state})
new_instance_type_ref = db.instance_type_get_by_flavor_id(
self.context, 3)
@@ -3194,8 +3397,10 @@ class ComputeTestCase(BaseTestCase):
inst_ref['uuid'], 'pre-migrating')
# NOTE(danms): make sure to refresh our inst_ref after prep_resize
- inst_ref = db.instance_get_by_uuid(self.context, instance_uuid)
- instance = jsonutils.to_primitive(inst_ref)
+ instance = get_primitive_instance_by_uuid(self.context, instance_uuid)
+ # NOTE(mriedem): ensure prep_resize set old_vm_state in system_metadata
+ sys_meta = utils.metadata_to_dict(instance['system_metadata'])
+ self.assertEqual(old_vm_state, sys_meta['old_vm_state'])
db.instance_update(self.context, instance_uuid,
{"task_state": task_states.RESIZE_PREP})
self.compute.resize_instance(self.context, instance=instance,
@@ -3207,44 +3412,67 @@ class ComputeTestCase(BaseTestCase):
disk_info={}, image={}, instance=instance)
# Prove that the instance size is now the new size
- inst_ref = db.instance_get_by_uuid(self.context, instance_uuid)
+ rpcinst = get_primitive_instance_by_uuid(self.context, instance_uuid)
instance_type_ref = db.instance_type_get(self.context,
- inst_ref['instance_type_id'])
+ rpcinst['instance_type_id'])
self.assertEqual(instance_type_ref['flavorid'], '3')
# Finally, revert and confirm the old flavor has been applied
- rpcinst = jsonutils.to_primitive(inst_ref)
db.instance_update(self.context, instance_uuid,
{"task_state": task_states.RESIZE_REVERTING})
self.compute.revert_resize(self.context,
migration_id=migration_ref['id'], instance=rpcinst,
reservations=reservations)
- def fake_setup_networks_on_host(cls, ctxt, instance, host):
+ def fake_setup_networks_on_host(cls, ctxt, instance, host,
+ teardown=False):
self.assertEqual(host, migration_ref['source_compute'])
inst = db.instance_get_by_uuid(ctxt, instance['uuid'])
self.assertEqual(host, inst['host'])
+ self.assertFalse(teardown)
self.stubs.Set(network_api.API, 'setup_networks_on_host',
fake_setup_networks_on_host)
rpcinst = db.instance_get_by_uuid(self.context, rpcinst['uuid'])
+ if remove_old_vm_state:
+ # need to wipe out the old_vm_state from system_metadata
+ # before calling finish_revert_resize
+ sys_meta = utils.metadata_to_dict(rpcinst['system_metadata'])
+ sys_meta.pop('old_vm_state')
+ rpcinst = db.instance_update(self.context, rpcinst['uuid'],
+ {'system_metadata': sys_meta})
+
self.compute.finish_revert_resize(self.context,
migration=jsonutils.to_primitive(migration_ref),
instance=rpcinst, reservations=reservations)
- instance = db.instance_get_by_uuid(self.context, instance_uuid)
- self.assertEqual(instance['vm_state'], vm_states.ACTIVE)
+ instance = get_primitive_instance_by_uuid(self.context, instance_uuid)
self.assertEqual(instance['task_state'], None)
- inst_ref = db.instance_get_by_uuid(self.context, instance_uuid)
instance_type_ref = db.instance_type_get(self.context,
- inst_ref['instance_type_id'])
+ instance['instance_type_id'])
self.assertEqual(instance_type_ref['flavorid'], '1')
- self.assertEqual(inst_ref['host'], migration_ref['source_compute'])
+ self.assertEqual(instance['host'], migration_ref['source_compute'])
+ if remove_old_vm_state:
+ self.assertEqual(vm_states.ACTIVE, instance['vm_state'])
+ else:
+ self.assertEqual(old_vm_state, instance['vm_state'])
- self.compute.terminate_instance(self.context,
- instance=jsonutils.to_primitive(inst_ref))
+ self.compute.terminate_instance(self.context, instance=instance)
+
+ def test_finish_revert_resize_from_active(self):
+ self._test_finish_revert_resize(power_on=True)
+
+ def test_finish_revert_resize_from_stopped(self):
+ self._test_finish_revert_resize(power_on=False)
+
+ def test_finish_revert_resize_from_stopped_remove_old_vm_state(self):
+ # in this case we resize from STOPPED but end up with ACTIVE
+ # because the old_vm_state value is not present in
+ # finish_revert_resize
+ self._test_finish_revert_resize(power_on=False,
+ remove_old_vm_state=True)
def _test_cleanup_stored_instance_types(self, old, new, revert=False):
migration = dict(old_instance_type_id=old,
@@ -3253,20 +3481,20 @@ class ComputeTestCase(BaseTestCase):
instance['system_metadata'].append(dict(key='instance_type_id',
value=old))
sys_meta = dict(instance_type_id=old)
- self.mox.StubOutWithMock(flavors, 'extract_instance_type')
- self.mox.StubOutWithMock(flavors, 'delete_instance_type_info')
- self.mox.StubOutWithMock(flavors, 'save_instance_type_info')
+ self.mox.StubOutWithMock(flavors, 'extract_flavor')
+ self.mox.StubOutWithMock(flavors, 'delete_flavor_info')
+ self.mox.StubOutWithMock(flavors, 'save_flavor_info')
if revert:
- flavors.extract_instance_type(instance, 'old_').AndReturn(
+ flavors.extract_flavor(instance, 'old_').AndReturn(
{'instance_type_id': old})
- flavors.save_instance_type_info(
+ flavors.save_flavor_info(
sys_meta, {'instance_type_id': old}).AndReturn(sys_meta)
else:
- flavors.extract_instance_type(instance).AndReturn(
+ flavors.extract_flavor(instance).AndReturn(
{'instance_type_id': new})
- flavors.delete_instance_type_info(
+ flavors.delete_flavor_info(
sys_meta, 'old_').AndReturn(sys_meta)
- flavors.delete_instance_type_info(
+ flavors.delete_flavor_info(
sys_meta, 'new_').AndReturn(sys_meta)
self.mox.ReplayAll()
@@ -3289,7 +3517,7 @@ class ComputeTestCase(BaseTestCase):
self._test_cleanup_stored_instance_types('1', '1', True)
def test_get_by_flavor_id(self):
- type = flavors.get_instance_type_by_flavor_id(1)
+ type = flavors.get_flavor_by_flavor_id(1)
self.assertEqual(type['name'], 'm1.tiny')
def test_resize_same_source_fails(self):
@@ -3299,7 +3527,7 @@ class ComputeTestCase(BaseTestCase):
instance = jsonutils.to_primitive(self._create_fake_instance())
self.compute.run_instance(self.context, instance=instance)
instance = db.instance_get_by_uuid(self.context, instance['uuid'])
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
self.assertRaises(exception.MigrationError, self.compute.prep_resize,
self.context, instance=instance,
instance_type=instance_type, image={},
@@ -3318,7 +3546,7 @@ class ComputeTestCase(BaseTestCase):
reservations = self._ensure_quota_reservations_rolledback()
inst_ref = jsonutils.to_primitive(self._create_fake_instance())
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
self.compute.run_instance(self.context, instance=inst_ref)
inst_ref = db.instance_update(self.context, inst_ref['uuid'],
@@ -4623,15 +4851,23 @@ class ComputeTestCase(BaseTestCase):
self.mox.ReplayAll()
self.compute._init_instance('fake-context', instance)
- def test_init_instance_reverts_crashed_migrations(self):
+ def _test_init_instance_reverts_crashed_migrations(self,
+ old_vm_state=None):
+ power_on = True if (not old_vm_state or
+ old_vm_state == vm_states.ACTIVE) else False
+ sys_meta = {
+ 'old_vm_state': old_vm_state
+ }
instance = {
'uuid': 'foo',
'vm_state': vm_states.ERROR,
'task_state': task_states.RESIZE_MIGRATING,
'power_state': power_state.SHUTDOWN,
+ 'system_metadata': sys_meta
}
fixed = dict(instance, task_state=None)
self.mox.StubOutWithMock(compute_utils, 'get_nw_info_for_instance')
+ self.mox.StubOutWithMock(utils, 'metadata_to_dict')
self.mox.StubOutWithMock(self.compute.driver, 'plug_vifs')
self.mox.StubOutWithMock(self.compute.driver,
'finish_revert_migration')
@@ -4643,9 +4879,10 @@ class ComputeTestCase(BaseTestCase):
compute_utils.get_nw_info_for_instance(instance).AndReturn(
network_model.NetworkInfo())
self.compute.driver.plug_vifs(instance, [])
+ utils.metadata_to_dict(instance['system_metadata']).AndReturn(sys_meta)
self.compute._get_instance_volume_block_device_info(
self.context, instance).AndReturn([])
- self.compute.driver.finish_revert_migration(instance, [], [])
+ self.compute.driver.finish_revert_migration(instance, [], [], power_on)
self.compute._instance_update(self.context, instance['uuid'],
task_state=None).AndReturn(fixed)
self.compute.driver.get_info(fixed).AndReturn(
@@ -4655,6 +4892,17 @@ class ComputeTestCase(BaseTestCase):
self.compute._init_instance(self.context, instance)
+ def test_init_instance_reverts_crashed_migration_from_active(self):
+ self._test_init_instance_reverts_crashed_migrations(
+ old_vm_state=vm_states.ACTIVE)
+
+ def test_init_instance_reverts_crashed_migration_from_stopped(self):
+ self._test_init_instance_reverts_crashed_migrations(
+ old_vm_state=vm_states.STOPPED)
+
+ def test_init_instance_reverts_crashed_migration_no_old_state(self):
+ self._test_init_instance_reverts_crashed_migrations(old_vm_state=None)
+
def _test_init_instance_update_nw_info_cache_helper(self, legacy_nwinfo):
self.compute.driver.legacy_nwinfo = lambda *a, **k: legacy_nwinfo
@@ -4853,7 +5101,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_create_with_too_little_ram(self):
# Test an instance type with too little memory.
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
inst_type['memory_mb'] = 1
self.fake_image['min_ram'] = 2
@@ -4872,7 +5120,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_create_with_too_little_disk(self):
# Test an instance type with too little disk space.
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
inst_type['root_gb'] = 1
self.fake_image['min_disk'] = 2
@@ -4888,10 +5136,30 @@ class ComputeAPITestCase(BaseTestCase):
inst_type, self.fake_image['id'])
db.instance_destroy(self.context, refs[0]['uuid'])
+ def test_create_with_too_large_image(self):
+ # Test an instance type with too little disk space.
+
+ inst_type = flavors.get_default_flavor()
+ inst_type['root_gb'] = 1
+
+ self.fake_image['size'] = '1073741825'
+
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ self.compute_api.create, self.context,
+ inst_type, self.fake_image['id'])
+
+ # Reduce image to 1 GB limit and ensure it works
+ self.fake_image['size'] = '1073741824'
+ (refs, resv_id) = self.compute_api.create(self.context,
+ inst_type, self.fake_image['id'])
+ db.instance_destroy(self.context, refs[0]['uuid'])
+
def test_create_just_enough_ram_and_disk(self):
# Test an instance type with just enough ram and disk space.
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
inst_type['root_gb'] = 2
inst_type['memory_mb'] = 2
@@ -4907,7 +5175,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_create_with_no_ram_and_disk_reqs(self):
# Test an instance type with no min_ram or min_disk.
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
inst_type['root_gb'] = 1
inst_type['memory_mb'] = 1
@@ -4920,7 +5188,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_create_with_deleted_image(self):
# If we're given a deleted image by glance, we should not be able to
# build from it
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
self.fake_image['name'] = 'fake_name'
self.fake_image['status'] = 'DELETED'
@@ -4939,7 +5207,7 @@ class ComputeAPITestCase(BaseTestCase):
cases = [dict(), dict(display_name=None)]
for instance in cases:
(ref, resv_id) = self.compute_api.create(self.context,
- flavors.get_default_instance_type(),
+ flavors.get_default_flavor(),
'fake-image-uuid', **instance)
try:
self.assertNotEqual(ref[0]['display_name'], None)
@@ -4950,7 +5218,7 @@ class ComputeAPITestCase(BaseTestCase):
# Make sure image properties are copied into system metadata.
(ref, resv_id) = self.compute_api.create(
self.context,
- instance_type=flavors.get_default_instance_type(),
+ instance_type=flavors.get_default_flavor(),
image_href='fake-image-uuid')
try:
sys_metadata = db.instance_system_metadata_get(self.context,
@@ -4967,7 +5235,7 @@ class ComputeAPITestCase(BaseTestCase):
db.instance_destroy(self.context, ref[0]['uuid'])
def test_create_saves_type_in_system_metadata(self):
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
(ref, resv_id) = self.compute_api.create(
self.context,
instance_type=instance_type,
@@ -4993,12 +5261,12 @@ class ComputeAPITestCase(BaseTestCase):
group = self._create_group()
(ref, resv_id) = self.compute_api.create(
self.context,
- instance_type=flavors.get_default_instance_type(),
+ instance_type=flavors.get_default_flavor(),
image_href=None,
security_group=['testgroup'])
try:
self.assertEqual(len(db.security_group_get_by_instance(
- self.context, ref[0]['id'])), 1)
+ self.context, ref[0]['uuid'])), 1)
group = db.security_group_get(self.context, group['id'])
self.assert_(len(group['instances']) == 1)
finally:
@@ -5006,7 +5274,7 @@ class ComputeAPITestCase(BaseTestCase):
db.instance_destroy(self.context, ref[0]['uuid'])
def test_create_instance_with_invalid_security_group_raises(self):
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
pre_build_len = len(db.instance_get_all(self.context))
self.assertRaises(exception.SecurityGroupNotFoundForProject,
@@ -5021,7 +5289,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_create_with_large_user_data(self):
# Test an instance type with too much user data.
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
self.fake_image['min_ram'] = 2
self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
@@ -5033,7 +5301,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_create_with_malformed_user_data(self):
# Test an instance type with malformed user data.
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
self.fake_image['min_ram'] = 2
self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
@@ -5045,7 +5313,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_create_with_base64_user_data(self):
# Test an instance type with ok much user data.
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
self.fake_image['min_ram'] = 2
self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
@@ -5076,7 +5344,7 @@ class ComputeAPITestCase(BaseTestCase):
('hello_server', 'hello-server')]
for display_name, hostname in cases:
(ref, resv_id) = self.compute_api.create(self.context,
- flavors.get_default_instance_type(), None,
+ flavors.get_default_flavor(), None,
display_name=display_name)
try:
self.assertEqual(ref[0]['hostname'], hostname)
@@ -5089,7 +5357,7 @@ class ComputeAPITestCase(BaseTestCase):
(ref, resv_id) = self.compute_api.create(
self.context,
- instance_type=flavors.get_default_instance_type(),
+ instance_type=flavors.get_default_flavor(),
image_href=None,
security_group=['testgroup'])
try:
@@ -5105,7 +5373,7 @@ class ComputeAPITestCase(BaseTestCase):
(ref, resv_id) = self.compute_api.create(
self.context,
- instance_type=flavors.get_default_instance_type(),
+ instance_type=flavors.get_default_flavor(),
image_href=None,
security_group=['testgroup'])
@@ -5161,6 +5429,16 @@ class ComputeAPITestCase(BaseTestCase):
db.instance_destroy(self.context, instance['uuid'])
+ def test_stop_a_stopped_inst(self):
+ instance = jsonutils.to_primitive(self._create_fake_instance(
+ {'vm_state': vm_states.STOPPED}))
+
+ self.assertRaises(exception.InstanceInvalidState,
+ self.compute_api.stop,
+ self.context, instance)
+
+ db.instance_destroy(self.context, instance['uuid'])
+
def test_stop_no_host(self):
instance = self._create_fake_instance(params={'host': ''})
@@ -5216,7 +5494,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_delete_in_resizing(self):
def fake_quotas_reserve(context, expire=None, project_id=None,
**deltas):
- old_type = flavors.get_instance_type_by_name('m1.tiny')
+ old_type = flavors.get_flavor_by_name('m1.tiny')
# ensure using old instance type to create reservations
self.assertEqual(deltas['cores'], -old_type['vcpus'])
self.assertEqual(deltas['ram'], -old_type['memory_mb'])
@@ -5227,7 +5505,7 @@ class ComputeAPITestCase(BaseTestCase):
'host': CONF.host})
# create a fake migration record (manager does this)
- new_inst_type = flavors.get_instance_type_by_name('m1.small')
+ new_inst_type = flavors.get_flavor_by_name('m1.small')
db.migration_create(self.context.elevated(),
{'instance_uuid': instance['uuid'],
'old_instance_type_id': instance['instance_type_id'],
@@ -5565,11 +5843,11 @@ class ComputeAPITestCase(BaseTestCase):
instance = jsonutils.to_primitive(
self._create_fake_instance(params={'image_ref': '1'}))
- def fake_extract_instance_type(_inst):
+ def fake_extract_flavor(_inst):
return dict(memory_mb=64, root_gb=1)
- self.stubs.Set(flavors, 'extract_instance_type',
- fake_extract_instance_type)
+ self.stubs.Set(flavors, 'extract_flavor',
+ fake_extract_flavor)
self.fake_image['min_ram'] = 128
self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
@@ -5589,11 +5867,11 @@ class ComputeAPITestCase(BaseTestCase):
instance = jsonutils.to_primitive(
self._create_fake_instance(params={'image_ref': '1'}))
- def fake_extract_instance_type(_inst):
+ def fake_extract_flavor(_inst):
return dict(memory_mb=64, root_gb=1)
- self.stubs.Set(flavors, 'extract_instance_type',
- fake_extract_instance_type)
+ self.stubs.Set(flavors, 'extract_flavor',
+ fake_extract_flavor)
self.fake_image['min_disk'] = 2
self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
@@ -5613,11 +5891,11 @@ class ComputeAPITestCase(BaseTestCase):
instance = jsonutils.to_primitive(
self._create_fake_instance(params={'image_ref': '1'}))
- def fake_extract_instance_type(_inst):
+ def fake_extract_flavor(_inst):
return dict(memory_mb=64, root_gb=1)
- self.stubs.Set(flavors, 'extract_instance_type',
- fake_extract_instance_type)
+ self.stubs.Set(flavors, 'extract_flavor',
+ fake_extract_flavor)
self.fake_image['min_ram'] = 64
self.fake_image['min_disk'] = 1
@@ -5631,13 +5909,36 @@ class ComputeAPITestCase(BaseTestCase):
instance = jsonutils.to_primitive(
self._create_fake_instance(params={'image_ref': '1'}))
- def fake_extract_instance_type(_inst):
+ def fake_extract_flavor(_inst):
+ return dict(memory_mb=64, root_gb=1)
+
+ self.stubs.Set(flavors, 'extract_flavor',
+ fake_extract_flavor)
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ self.compute_api.rebuild(self.context,
+ instance, self.fake_image['id'], 'new_password')
+ db.instance_destroy(self.context, instance['uuid'])
+
+ def test_rebuild_with_too_large_image(self):
+ instance = jsonutils.to_primitive(
+ self._create_fake_instance(params={'image_ref': '1'}))
+
+ def fake_extract_flavor(_inst):
return dict(memory_mb=64, root_gb=1)
- self.stubs.Set(flavors, 'extract_instance_type',
- fake_extract_instance_type)
+ self.stubs.Set(flavors, 'extract_flavor',
+ fake_extract_flavor)
+
+ self.fake_image['size'] = '1073741825'
self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ self.compute_api.rebuild, self.context,
+ instance, self.fake_image['id'], 'new_password')
+
+ # Reduce image to 1 GB limit and ensure it works
+ self.fake_image['size'] = '1073741824'
self.compute_api.rebuild(self.context,
instance, self.fake_image['id'], 'new_password')
db.instance_destroy(self.context, instance['uuid'])
@@ -5769,7 +6070,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_hostname_create(self):
# Ensure instance hostname is set during creation.
- inst_type = flavors.get_instance_type_by_name('m1.tiny')
+ inst_type = flavors.get_flavor_by_name('m1.tiny')
(instances, _) = self.compute_api.create(self.context,
inst_type,
None,
@@ -5846,6 +6147,8 @@ class ComputeAPITestCase(BaseTestCase):
def fake_get_instance_bdms(*args, **kwargs):
return [{'device_name': '/dev/vda',
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
'volume_id': 'bf0b6b00-a20c-11e2-9e96-0800200c9a66'}]
self.stubs.Set(self.compute_api, 'get_instance_bdms',
@@ -5930,7 +6233,7 @@ class ComputeAPITestCase(BaseTestCase):
{'extra_param': 'value1'})
self.assertEqual(image['name'], 'snap1')
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
self.assertEqual(image['min_ram'], self.fake_image['min_ram'])
self.assertEqual(image['min_disk'], instance_type['root_gb'])
properties = image['properties']
@@ -6158,15 +6461,15 @@ class ComputeAPITestCase(BaseTestCase):
self.compute_api.resize(self.context, instance, '4')
# Do the prep/finish_resize steps (manager does this)
- old_type = flavors.extract_instance_type(instance)
- new_type = flavors.get_instance_type_by_flavor_id('4')
+ old_type = flavors.extract_flavor(instance)
+ new_type = flavors.get_flavor_by_flavor_id('4')
sys_meta = utils.metadata_to_dict(instance['system_metadata'])
- sys_meta = flavors.save_instance_type_info(sys_meta,
- old_type, 'old_')
- sys_meta = flavors.save_instance_type_info(sys_meta,
- new_type, 'new_')
- sys_meta = flavors.save_instance_type_info(sys_meta,
- new_type)
+ sys_meta = flavors.save_flavor_info(sys_meta,
+ old_type, 'old_')
+ sys_meta = flavors.save_flavor_info(sys_meta,
+ new_type, 'new_')
+ sys_meta = flavors.save_flavor_info(sys_meta,
+ new_type)
# create a fake migration record (manager does this)
db.migration_create(self.context.elevated(),
@@ -6277,7 +6580,7 @@ class ComputeAPITestCase(BaseTestCase):
self.compute.run_instance(self.context, instance=instance)
old_instance_type_id = instance['instance_type_id']
- new_flavor = flavors.get_instance_type_by_name('m1.tiny')
+ new_flavor = flavors.get_flavor_by_name('m1.tiny')
new_flavorid = new_flavor['flavorid']
new_instance_type_id = new_flavor['id']
self.compute_api.resize(self.context, instance, new_flavorid)
@@ -6296,6 +6599,22 @@ class ComputeAPITestCase(BaseTestCase):
self.context, instance)
self.compute.terminate_instance(self.context, instance=instance)
+ def test_resize_no_image(self):
+ def _fake_prep_resize(_context, **args):
+ image = args['image']
+ self.assertEqual(image, {})
+
+ instance = self._create_fake_instance(params={'image_ref': ''})
+ instance = db.instance_get_by_uuid(self.context, instance['uuid'])
+ instance = jsonutils.to_primitive(instance)
+ self.compute.run_instance(self.context, instance=instance)
+
+ self.stubs.Set(self.compute_api.scheduler_rpcapi,
+ 'prep_resize', _fake_prep_resize)
+
+ self.compute_api.resize(self.context, instance, None)
+ self.compute.terminate_instance(self.context, instance=instance)
+
def test_migrate(self):
instance = self._create_fake_instance()
instance = db.instance_get_by_uuid(self.context, instance['uuid'])
@@ -6338,7 +6657,7 @@ class ComputeAPITestCase(BaseTestCase):
instance = self._create_fake_instance(dict(host='host2'))
instance = db.instance_get_by_uuid(self.context, instance['uuid'])
instance = jsonutils.to_primitive(instance)
- orig_instance_type = flavors.extract_instance_type(instance)
+ orig_instance_type = flavors.extract_flavor(instance)
self.compute.run_instance(self.context, instance=instance)
# We need to set the host to something 'known'. Unfortunately,
# the compute manager is using a cached copy of CONF.host,
@@ -6882,12 +7201,14 @@ class ComputeAPITestCase(BaseTestCase):
self.context, instance_type, instance['uuid'], mappings)
bdms = [self._parse_db_block_device_mapping(bdm_ref)
- for bdm_ref in db.block_device_mapping_get_all_by_instance(
- self.context, instance['uuid'])]
+ for bdm_ref in block_device.legacy_mapping(
+ db.block_device_mapping_get_all_by_instance(
+ self.context, instance['uuid']))]
expected_result = [
{'virtual_name': 'swap', 'device_name': '/dev/sdb1',
- 'volume_size': swap_size},
- {'virtual_name': 'ephemeral0', 'device_name': '/dev/sdc1'},
+ 'volume_size': swap_size, 'delete_on_termination': True},
+ {'virtual_name': 'ephemeral0', 'device_name': '/dev/sdc1',
+ 'delete_on_termination': True},
# NOTE(yamahata): ATM only ephemeral0 is supported.
# they're ignored for now
@@ -6899,24 +7220,26 @@ class ComputeAPITestCase(BaseTestCase):
self.assertThat(bdms, matchers.DictListMatches(expected_result))
self.compute_api._update_block_device_mapping(
- self.context, flavors.get_default_instance_type(),
+ self.context, flavors.get_default_flavor(),
instance['uuid'], block_device_mapping)
bdms = [self._parse_db_block_device_mapping(bdm_ref)
- for bdm_ref in db.block_device_mapping_get_all_by_instance(
- self.context, instance['uuid'])]
+ for bdm_ref in block_device.legacy_mapping(
+ db.block_device_mapping_get_all_by_instance(
+ self.context, instance['uuid']))]
expected_result = [
{'snapshot_id': '00000000-aaaa-bbbb-cccc-000000000000',
'device_name': '/dev/sda1'},
{'virtual_name': 'swap', 'device_name': '/dev/sdb1',
- 'volume_size': swap_size},
+ 'volume_size': swap_size, 'delete_on_termination': True},
{'snapshot_id': '11111111-aaaa-bbbb-cccc-111111111111',
'device_name': '/dev/sdb2'},
{'snapshot_id': '22222222-aaaa-bbbb-cccc-222222222222',
'device_name': '/dev/sdb3'},
{'no_device': True, 'device_name': '/dev/sdb4'},
- {'virtual_name': 'ephemeral0', 'device_name': '/dev/sdc1'},
+ {'virtual_name': 'ephemeral0', 'device_name': '/dev/sdc1',
+ 'delete_on_termination': True},
{'snapshot_id': '33333333-aaaa-bbbb-cccc-333333333333',
'device_name': '/dev/sdc2'},
{'snapshot_id': '44444444-aaaa-bbbb-cccc-444444444444',
@@ -6940,6 +7263,56 @@ class ComputeAPITestCase(BaseTestCase):
instance = db.instance_get_by_uuid(self.context, instance['uuid'])
self.compute.terminate_instance(self.context, instance)
+ def test_populate_instance_for_bdm(self):
+ # Test that the image bdm is created
+ instance_type = {'swap': 1}
+ instance = self._create_fake_instance(
+ {'root_device_name': 'vda'}
+ )
+ image = {'uuid': FAKE_IMAGE_REF}
+ fake_bdms = [{'device_name': '/dev/vda',
+ 'snapshot_id': '33333333-aaaa-bbbb-cccc-333333333333',
+ 'delete_on_termination': False}]
+
+ # Has an image but no bdms
+ self.compute_api._populate_instance_for_bdm(self.context,
+ instance,
+ instance_type,
+ image, [])
+ bdms = db.block_device_mapping_get_all_by_instance(
+ self.context, instance['uuid'])
+ self.assertEqual(len(bdms), 1)
+ self.assertEqual(bdms[0]['image_id'], FAKE_IMAGE_REF)
+ for bdm in bdms:
+ db.block_device_mapping_destroy(self.context, bdm['id'])
+
+ # Has an image and is volume backed - legacy style
+ self.compute_api._populate_instance_for_bdm(self.context,
+ instance,
+ instance_type,
+ image, fake_bdms)
+ bdms = db.block_device_mapping_get_all_by_instance(
+ self.context, instance['uuid'])
+ self.assertEqual(len(bdms), 1)
+ self.assertEqual(bdms[0]['snapshot_id'],
+ '33333333-aaaa-bbbb-cccc-333333333333')
+ for bdm in bdms:
+ db.block_device_mapping_destroy(self.context, bdm['id'])
+
+ # Is volume backed and has no image
+ instance['image_ref'] = ''
+ self.compute_api._populate_instance_for_bdm(self.context,
+ instance,
+ instance_type,
+ image, fake_bdms)
+ bdms = db.block_device_mapping_get_all_by_instance(
+ self.context, instance['uuid'])
+ self.assertEqual(len(bdms), 1)
+ self.assertEqual(bdms[0]['snapshot_id'],
+ '33333333-aaaa-bbbb-cccc-333333333333')
+ for bdm in bdms:
+ db.block_device_mapping_destroy(self.context, bdm['id'])
+
def test_volume_size(self):
ephemeral_size = 2
swap_size = 3
@@ -6958,7 +7331,7 @@ class ComputeAPITestCase(BaseTestCase):
"""Verify building an instance has a reservation_id that
matches return value from create"""
(refs, resv_id) = self.compute_api.create(self.context,
- flavors.get_default_instance_type(), None)
+ flavors.get_default_flavor(), None)
try:
self.assertEqual(len(refs), 1)
self.assertEqual(refs[0]['reservation_id'], resv_id)
@@ -6971,7 +7344,7 @@ class ComputeAPITestCase(BaseTestCase):
in both instances
"""
(refs, resv_id) = self.compute_api.create(self.context,
- flavors.get_default_instance_type(), None,
+ flavors.get_default_flavor(), None,
min_count=2, max_count=2)
try:
self.assertEqual(len(refs), 2)
@@ -6985,7 +7358,7 @@ class ComputeAPITestCase(BaseTestCase):
def test_multi_instance_display_name_template(self):
self.flags(multi_instance_display_name_template='%(name)s')
(refs, resv_id) = self.compute_api.create(self.context,
- flavors.get_default_instance_type(), None,
+ flavors.get_default_flavor(), None,
min_count=2, max_count=2, display_name='x')
self.assertEqual(refs[0]['display_name'], 'x')
self.assertEqual(refs[0]['hostname'], 'x')
@@ -6994,7 +7367,7 @@ class ComputeAPITestCase(BaseTestCase):
self.flags(multi_instance_display_name_template='%(name)s-%(count)s')
(refs, resv_id) = self.compute_api.create(self.context,
- flavors.get_default_instance_type(), None,
+ flavors.get_default_flavor(), None,
min_count=2, max_count=2, display_name='x')
self.assertEqual(refs[0]['display_name'], 'x-1')
self.assertEqual(refs[0]['hostname'], 'x-1')
@@ -7003,7 +7376,7 @@ class ComputeAPITestCase(BaseTestCase):
self.flags(multi_instance_display_name_template='%(name)s-%(uuid)s')
(refs, resv_id) = self.compute_api.create(self.context,
- flavors.get_default_instance_type(), None,
+ flavors.get_default_flavor(), None,
min_count=2, max_count=2, display_name='x')
self.assertEqual(refs[0]['display_name'], 'x-%s' % refs[0]['uuid'])
self.assertEqual(refs[0]['hostname'], 'x-%s' % refs[0]['uuid'])
@@ -7104,6 +7477,8 @@ class ComputeAPITestCase(BaseTestCase):
def fake_get_instance_bdms(*args, **kwargs):
return [{'device_name': '/dev/vda',
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
'volume_id': 'bf0b6b00-a20c-11e2-9e96-0800200c9a66'}]
self.stubs.Set(self.compute_api, 'get_instance_bdms',
@@ -7403,7 +7778,7 @@ class ComputeAPITestCase(BaseTestCase):
def fake_libvirt_driver_detach_volume_fails(*args, **kwargs):
called['fake_libvirt_driver_detach_volume_fails'] = True
- raise AttributeError
+ raise AttributeError()
def fake_roll_detaching(*args, **kwargs):
called['fake_roll_detaching'] = True
@@ -7695,12 +8070,11 @@ class ComputeAPITestCase(BaseTestCase):
inst['vm_state'] = vm_states.ACTIVE
inst['image_ref'] = FAKE_IMAGE_REF
inst['reservation_id'] = 'r-fakeres'
- inst['launch_time'] = '10'
inst['user_id'] = self.user_id
inst['project_id'] = self.project_id
inst['host'] = 'fake_host'
inst['node'] = NODENAME
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
inst['instance_type_id'] = type_id
inst['ami_launch_index'] = 0
inst['memory_mb'] = 0
@@ -8075,124 +8449,6 @@ class ComputePolicyTestCase(BaseTestCase):
availability_zone='1:1')
-class KeypairAPITestCase(BaseTestCase):
- def setUp(self):
- super(KeypairAPITestCase, self).setUp()
- self.keypair_api = compute_api.KeypairAPI()
- self.ctxt = context.RequestContext('fake', 'fake')
- self._keypair_db_call_stubs()
- self.existing_key_name = 'fake existing key name'
- self.pub_key = ('ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLnVkqJu9WVf'
- '/5StU3JCrBR2r1s1j8K1tux+5XeSvdqaM8lMFNorzbY5iyoBbR'
- 'S56gy1jmm43QsMPJsrpfUZKcJpRENSe3OxIIwWXRoiapZe78u/'
- 'a9xKwj0avFYMcws9Rk9iAB7W4K1nEJbyCPl5lRBoyqeHBqrnnu'
- 'XWEgGxJCK0Ah6wcOzwlEiVjdf4kxzXrwPHyi7Ea1qvnNXTziF8'
- 'yYmUlH4C8UXfpTQckwSwpDyxZUc63P8q+vPbs3Q2kw+/7vvkCK'
- 'HJAXVI+oCiyMMfffoTq16M1xfV58JstgtTqAXG+ZFpicGajREU'
- 'E/E3hO5MGgcHmyzIrWHKpe1n3oEGuz')
- self.fingerprint = '4e:48:c6:a0:4a:f9:dd:b5:4c:85:54:5a:af:43:47:5a'
-
- def _keypair_db_call_stubs(self):
-
- def db_key_pair_get_all_by_user(self, user_id):
- return []
-
- def db_key_pair_create(self, keypair):
- pass
-
- def db_key_pair_destroy(context, user_id, name):
- pass
-
- def db_key_pair_get(context, user_id, name):
- if name == self.existing_key_name:
- return {'name': self.existing_key_name,
- 'public_key': self.pub_key,
- 'fingerprint': self.fingerprint}
- else:
- raise exception.KeypairNotFound(user_id=user_id, name=name)
-
- self.stubs.Set(db, "key_pair_get_all_by_user",
- db_key_pair_get_all_by_user)
- self.stubs.Set(db, "key_pair_create",
- db_key_pair_create)
- self.stubs.Set(db, "key_pair_destroy",
- db_key_pair_destroy)
- self.stubs.Set(db, "key_pair_get",
- db_key_pair_get)
-
- def test_create_keypair(self):
- keypair = self.keypair_api.create_key_pair(self.ctxt,
- self.ctxt.user_id, 'foo')
- self.assertEqual('foo', keypair['name'])
-
- def test_create_keypair_name_too_long(self):
- self.assertRaises(exception.InvalidKeypair,
- self.keypair_api.create_key_pair,
- self.ctxt, self.ctxt.user_id, 'x' * 256)
-
- def test_create_keypair_invalid_chars(self):
- self.assertRaises(exception.InvalidKeypair,
- self.keypair_api.create_key_pair,
- self.ctxt, self.ctxt.user_id, '* BAD CHARACTERS! *')
-
- def test_create_keypair_already_exists(self):
- def db_key_pair_create_duplicate(context, keypair):
- raise exception.KeyPairExists(key_name=keypair.get('name', ''))
- self.stubs.Set(db, "key_pair_create", db_key_pair_create_duplicate)
- self.assertRaises(exception.KeyPairExists,
- self.keypair_api.create_key_pair,
- self.ctxt, self.ctxt.user_id,
- self.existing_key_name)
-
- def test_create_keypair_quota_limit(self):
- def fake_quotas_count(self, context, resource, *args, **kwargs):
- return CONF.quota_key_pairs
- self.stubs.Set(QUOTAS, "count", fake_quotas_count)
- self.assertRaises(exception.KeypairLimitExceeded,
- self.keypair_api.create_key_pair,
- self.ctxt, self.ctxt.user_id, 'foo')
-
- def test_import_keypair(self):
- keypair = self.keypair_api.import_key_pair(self.ctxt,
- self.ctxt.user_id,
- 'foo',
- self.pub_key)
- self.assertEqual('foo', keypair['name'])
- self.assertEqual(self.fingerprint, keypair['fingerprint'])
- self.assertEqual(self.pub_key, keypair['public_key'])
-
- def test_import_keypair_bad_public_key(self):
- self.assertRaises(exception.InvalidKeypair,
- self.keypair_api.import_key_pair,
- self.ctxt, self.ctxt.user_id, 'foo', 'bad key data')
-
- def test_import_keypair_name_too_long(self):
- self.assertRaises(exception.InvalidKeypair,
- self.keypair_api.import_key_pair,
- self.ctxt, self.ctxt.user_id, 'x' * 256,
- self.pub_key)
-
- def test_import_keypair_invalid_chars(self):
- self.assertRaises(exception.InvalidKeypair,
- self.keypair_api.import_key_pair,
- self.ctxt, self.ctxt.user_id,
- '* BAD CHARACTERS! *', self.pub_key)
-
- def test_import_keypair_quota_limit(self):
- def fake_quotas_count(self, context, resource, *args, **kwargs):
- return CONF.quota_key_pairs
- self.stubs.Set(QUOTAS, "count", fake_quotas_count)
- self.assertRaises(exception.KeypairLimitExceeded,
- self.keypair_api.import_key_pair,
- self.ctxt, self.ctxt.user_id, 'foo', self.pub_key)
-
- def test_get_keypair(self):
- keypair = self.keypair_api.get_key_pair(self.ctxt,
- self.ctxt.user_id,
- self.existing_key_name)
- self.assertEqual(self.existing_key_name, keypair['name'])
-
-
class DisabledInstanceTypesTestCase(BaseTestCase):
"""
Some instance-types are marked 'disabled' which means that they will not
@@ -8209,7 +8465,7 @@ class DisabledInstanceTypesTestCase(BaseTestCase):
def setUp(self):
super(DisabledInstanceTypesTestCase, self).setUp()
self.compute_api = compute.API()
- self.inst_type = flavors.get_default_instance_type()
+ self.inst_type = flavors.get_default_flavor()
def test_can_build_instance_from_visible_instance_type(self):
self.inst_type['disabled'] = False
@@ -8223,19 +8479,19 @@ class DisabledInstanceTypesTestCase(BaseTestCase):
def test_can_resize_to_visible_instance_type(self):
instance = self._create_fake_instance()
- orig_get_instance_type_by_flavor_id =\
- flavors.get_instance_type_by_flavor_id
+ orig_get_flavor_by_flavor_id =\
+ flavors.get_flavor_by_flavor_id
- def fake_get_instance_type_by_flavor_id(flavor_id, ctxt=None,
+ def fake_get_flavor_by_flavor_id(flavor_id, ctxt=None,
read_deleted="yes"):
- instance_type = orig_get_instance_type_by_flavor_id(flavor_id,
+ instance_type = orig_get_flavor_by_flavor_id(flavor_id,
ctxt,
read_deleted)
instance_type['disabled'] = False
return instance_type
- self.stubs.Set(flavors, 'get_instance_type_by_flavor_id',
- fake_get_instance_type_by_flavor_id)
+ self.stubs.Set(flavors, 'get_flavor_by_flavor_id',
+ fake_get_flavor_by_flavor_id)
# FIXME(sirp): for legacy this raises FlavorNotFound instead of
# InstanceTypeNotFound; we should eventually make it raise
@@ -8244,19 +8500,19 @@ class DisabledInstanceTypesTestCase(BaseTestCase):
def test_cannot_resize_to_disabled_instance_type(self):
instance = self._create_fake_instance()
- orig_get_instance_type_by_flavor_id = \
- flavors.get_instance_type_by_flavor_id
+ orig_get_flavor_by_flavor_id = \
+ flavors.get_flavor_by_flavor_id
- def fake_get_instance_type_by_flavor_id(flavor_id, ctxt=None,
+ def fake_get_flavor_by_flavor_id(flavor_id, ctxt=None,
read_deleted="yes"):
- instance_type = orig_get_instance_type_by_flavor_id(flavor_id,
+ instance_type = orig_get_flavor_by_flavor_id(flavor_id,
ctxt,
read_deleted)
instance_type['disabled'] = True
return instance_type
- self.stubs.Set(flavors, 'get_instance_type_by_flavor_id',
- fake_get_instance_type_by_flavor_id)
+ self.stubs.Set(flavors, 'get_flavor_by_flavor_id',
+ fake_get_flavor_by_flavor_id)
# FIXME(sirp): for legacy this raises FlavorNotFound instead of
# InstanceTypeNot; we should eventually make it raise
@@ -8549,7 +8805,7 @@ class ComputeRescheduleResizeOrReraiseTestCase(BaseTestCase):
super(ComputeRescheduleResizeOrReraiseTestCase, self).setUp()
self.instance = self._create_fake_instance()
self.instance_uuid = self.instance['uuid']
- self.instance_type = flavors.get_instance_type_by_name(
+ self.instance_type = flavors.get_flavor_by_name(
"m1.tiny")
def test_reschedule_resize_or_reraise_called(self):
@@ -8656,7 +8912,7 @@ class ComputeInactiveImageTestCase(BaseTestCase):
def test_create_instance_with_deleted_image(self):
# Make sure we can't start an instance with a deleted image.
- inst_type = flavors.get_instance_type_by_name('m1.tiny')
+ inst_type = flavors.get_flavor_by_name('m1.tiny')
self.assertRaises(exception.ImageNotActive,
self.compute_api.create,
self.context, inst_type, 'fake-image-uuid')
@@ -8894,105 +9150,6 @@ class ComputeInjectedFilesTestCase(BaseTestCase):
injected_files=expected)
-class GetAndCheckImageMetadataTest(test.TestCase):
- NOT_PRESENT = object()
-
- def setUp(self):
- super(GetAndCheckImageMetadataTest, self).setUp()
- self.context = context.RequestContext('fakeuser', 'fakeproject')
- self.compute = importutils.import_object(CONF.compute_manager)
-
- def assertCheckSucceedsWithWonkySize(self, size):
- instance = {'uuid': 'fakeuuid', 'image_ref': 'fakeimage'}
- image_meta = {'id': 'imageid'}
- if size is not self.NOT_PRESENT:
- image_meta['size'] = size
-
- self.mox.StubOutWithMock(compute_manager, '_get_image_meta')
- compute_manager._get_image_meta(self.context,
- instance['image_ref']).AndReturn(image_meta)
-
- self.mox.ReplayAll()
-
- image_meta2 = self.compute._get_and_check_image_metadata(
- self.context, instance)
-
- self.assertEqual(image_meta, image_meta2)
-
- def test_size_not_present_on_image(self):
- self.assertCheckSucceedsWithWonkySize(self.NOT_PRESENT)
-
- def test_invalid_image_size(self):
- self.assertCheckSucceedsWithWonkySize('invalid')
-
- def test_image_size_present_but_empty(self):
- self.assertCheckSucceedsWithWonkySize('')
-
- def test_image_size_is_none(self):
- self.assertCheckSucceedsWithWonkySize(None)
-
- def test_root_gb_zero(self):
- instance = {'uuid': 'fakeuuid', 'image_ref': 'fakeimage'}
- self.mox.StubOutWithMock(flavors, 'extract_instance_type')
- flavors.extract_instance_type(instance).AndReturn({'root_gb': 0})
-
- self.mox.StubOutWithMock(compute_manager, '_get_image_meta')
-
- image_meta = {'id': 'imageid', 'size': '123'}
- compute_manager._get_image_meta(self.context,
- instance['image_ref']).AndReturn(image_meta)
-
- self.mox.ReplayAll()
-
- image_meta2 = self.compute._get_and_check_image_metadata(
- self.context, instance)
-
- self.assertEqual(image_meta, image_meta2)
-
- def test_image_ref_is_none(self):
- # Instance was started from volume - so no image ref
- instance = {'uuid': 'fakeuuid', 'image_ref': None}
- image_meta2 = self.compute._get_and_check_image_metadata(
- self.context, instance)
-
- self.assertEqual({}, image_meta2)
-
- def test_image_not_too_large(self):
- instance = {'uuid': 'fakeuuid', 'image_ref': 'fakeimage'}
-
- self.mox.StubOutWithMock(flavors, 'extract_instance_type')
- flavors.extract_instance_type(instance).AndReturn({'root_gb': 1})
-
- image_meta = {'id': 'imageid', 'size': '1073741824'}
- self.mox.StubOutWithMock(compute_manager, '_get_image_meta')
- compute_manager._get_image_meta(self.context,
- instance['image_ref']).AndReturn(image_meta)
-
- self.mox.ReplayAll()
-
- image_meta2 = self.compute._get_and_check_image_metadata(
- self.context, instance)
-
- self.assertEqual(image_meta, image_meta2)
-
- def test_image_too_large(self):
- instance = {'uuid': 'fakeuuid', 'image_ref': 'fakeimage'}
-
- self.mox.StubOutWithMock(flavors, 'extract_instance_type')
- flavors.extract_instance_type(instance).AndReturn({'root_gb': 1})
-
- image_meta = {'id': 'imageid', 'size': '1073741825'}
- self.mox.StubOutWithMock(compute_manager, '_get_image_meta')
- compute_manager._get_image_meta(self.context,
- instance['image_ref']).AndReturn(image_meta)
-
- self.mox.ReplayAll()
-
- self.assertRaises(exception.ImageTooLarge,
- self.compute._get_and_check_image_metadata,
- self.context, instance)
-
-
class CheckConfigDriveTestCase(test.TestCase):
# NOTE(sirp): `TestCase` is far too heavyweight for this test, this should
# probably derive from a `test.FastTestCase` that omits DB and env
@@ -9029,18 +9186,108 @@ class CheckConfigDriveTestCase(test.TestCase):
self.assertCheck((None, None), None)
self.assertFalse(self.called['show'])
- def test_value_is_bool_like_string(self):
- self.assertCheck((None, 'True'), 'True')
- self.assertCheck((None, 'yes'), 'yes')
-
def test_bool_string_or_id(self):
- # NOTE(sirp): '0' and '1' could be a bool value or an ID. Since there
- # are many other ways to specify bools (e.g. 't', 'f'), it's better to
- # treat as an ID.
- self.assertCheck((0, None), 0)
- self.assertCheck((1, None), 1)
- self.assertCheck(('0', None), '0')
- self.assertCheck(('1', None), '1')
+ self.assertCheck((None, True), "true")
+ self.assertCheck((None, True), 1)
+ self.assertCheck((None, True), 't')
def test_value_is_image_id(self):
- self.assertCheck((2, None), 2)
+ self.assertCheck(("fake-uuid", None), "fake-uuid")
+
+
+class CheckRequestedImageTestCase(test.TestCase):
+ def setUp(self):
+ super(CheckRequestedImageTestCase, self).setUp()
+ self.compute_api = compute.API()
+ self.context = context.RequestContext(
+ 'fake_user_id', 'fake_project_id')
+
+ self.instance_type = flavors.get_default_flavor()
+ self.instance_type['memory_mb'] = 64
+ self.instance_type['root_gb'] = 1
+
+ def test_no_image_specified(self):
+ self.compute_api._check_requested_image(self.context, None, {},
+ self.instance_type)
+
+ def test_image_status_must_be_active(self):
+ image = dict(id='123', status='foo')
+
+ self.assertRaises(exception.ImageNotActive,
+ self.compute_api._check_requested_image, self.context,
+ image['id'], image, self.instance_type)
+
+ image['status'] = 'active'
+ self.compute_api._check_requested_image(self.context, image['id'],
+ image, self.instance_type)
+
+ def test_image_min_ram_check(self):
+ image = dict(id='123', status='active', min_ram='65')
+
+ self.assertRaises(exception.InstanceTypeMemoryTooSmall,
+ self.compute_api._check_requested_image, self.context,
+ image['id'], image, self.instance_type)
+
+ image['min_ram'] = '64'
+ self.compute_api._check_requested_image(self.context, image['id'],
+ image, self.instance_type)
+
+ def test_image_min_disk_check(self):
+ image = dict(id='123', status='active', min_disk='2')
+
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ self.compute_api._check_requested_image, self.context,
+ image['id'], image, self.instance_type)
+
+ image['min_disk'] = '1'
+ self.compute_api._check_requested_image(self.context, image['id'],
+ image, self.instance_type)
+
+ def test_image_too_large(self):
+ image = dict(id='123', status='active', size='1073741825')
+
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ self.compute_api._check_requested_image, self.context,
+ image['id'], image, self.instance_type)
+
+ image['size'] = '1073741824'
+ self.compute_api._check_requested_image(self.context, image['id'],
+ image, self.instance_type)
+
+ def test_root_gb_zero_disables_size_check(self):
+ self.instance_type['root_gb'] = 0
+ image = dict(id='123', status='active', size='1073741825')
+
+ self.compute_api._check_requested_image(self.context, image['id'],
+ image, self.instance_type)
+
+ def test_root_gb_zero_disables_min_disk(self):
+ self.instance_type['root_gb'] = 0
+ image = dict(id='123', status='active', min_disk='2')
+
+ self.compute_api._check_requested_image(self.context, image['id'],
+ image, self.instance_type)
+
+
+class ComputeAPIClassNameTestCase(test.TestCase):
+ def setUp(self):
+ super(ComputeAPIClassNameTestCase, self).setUp()
+
+ def test_default_compute_api_class_name(self):
+ result = compute.get_compute_api_class_name()
+ self.assertEqual('nova.compute.api.API', result)
+
+ def test_cell_compute_api_class_name(self):
+ self.flags(enable=True, group='cells')
+ self.flags(cell_type='api', group='cells')
+ result = compute.get_compute_api_class_name()
+ self.assertEqual('nova.compute.cells_api.ComputeCellsAPI', result)
+ self.flags(cell_type='compute', group='cells')
+ result = compute.get_compute_api_class_name()
+ self.assertEqual('nova.compute.api.API', result)
+
+ def test_illegal_cell_compute_api_class_name(self):
+ self.flags(enable=True, group='cells')
+ self.flags(cell_type='fake_cell_type', group='cells')
+ self.assertRaises(exception.InvalidInput,
+ compute.get_compute_api_class_name)
diff --git a/nova/tests/compute/test_compute_cells.py b/nova/tests/compute/test_compute_cells.py
index 40ae4e3de..ad4e6c754 100644
--- a/nova/tests/compute/test_compute_cells.py
+++ b/nova/tests/compute/test_compute_cells.py
@@ -145,9 +145,6 @@ class CellsComputeAPITestCase(test_compute.ComputeAPITestCase):
def test_instance_metadata(self):
self.skipTest("Test is incompatible with cells.")
- def test_live_migrate(self):
- self.skipTest("Test is incompatible with cells.")
-
def test_snapshot_given_image_uuid(self):
self.skipTest("Test doesn't apply to API cell.")
diff --git a/nova/tests/compute/test_compute_utils.py b/nova/tests/compute/test_compute_utils.py
index d2bc41003..12c007963 100644
--- a/nova/tests/compute/test_compute_utils.py
+++ b/nova/tests/compute/test_compute_utils.py
@@ -185,7 +185,7 @@ class ComputeValidateDeviceTestCase(test.TestCase):
'ephemeral_gb': 10,
'swap': 0,
})
- self.stubs.Set(flavors, 'get_instance_type',
+ self.stubs.Set(flavors, 'get_flavor',
lambda instance_type_id, ctxt=None: self.instance_type)
device = self._validate_device()
self.assertEqual(device, '/dev/xvdc')
@@ -195,7 +195,7 @@ class ComputeValidateDeviceTestCase(test.TestCase):
'ephemeral_gb': 0,
'swap': 10,
})
- self.stubs.Set(flavors, 'get_instance_type',
+ self.stubs.Set(flavors, 'get_flavor',
lambda instance_type_id, ctxt=None: self.instance_type)
device = self._validate_device()
self.assertEqual(device, '/dev/xvdb')
@@ -205,7 +205,7 @@ class ComputeValidateDeviceTestCase(test.TestCase):
'ephemeral_gb': 10,
'swap': 10,
})
- self.stubs.Set(flavors, 'get_instance_type',
+ self.stubs.Set(flavors, 'get_flavor',
lambda instance_type_id, ctxt=None: self.instance_type)
device = self._validate_device()
self.assertEqual(device, '/dev/xvdd')
@@ -215,7 +215,7 @@ class ComputeValidateDeviceTestCase(test.TestCase):
'ephemeral_gb': 0,
'swap': 10,
})
- self.stubs.Set(flavors, 'get_instance_type',
+ self.stubs.Set(flavors, 'get_flavor',
lambda instance_type_id, ctxt=None: self.instance_type)
device = self._validate_device()
self.assertEqual(device, '/dev/xvdb')
@@ -258,12 +258,11 @@ class UsageInfoTestCase(test.TestCase):
def _create_instance(self, params={}):
"""Create a test instance."""
- instance_type = flavors.get_instance_type_by_name('m1.tiny')
- sys_meta = flavors.save_instance_type_info({}, instance_type)
+ instance_type = flavors.get_flavor_by_name('m1.tiny')
+ sys_meta = flavors.save_flavor_info({}, instance_type)
inst = {}
inst['image_ref'] = 1
inst['reservation_id'] = 'r-fakeres'
- inst['launch_time'] = '10'
inst['user_id'] = self.user_id
inst['project_id'] = self.project_id
inst['instance_type_id'] = instance_type['id']
@@ -295,7 +294,7 @@ class UsageInfoTestCase(test.TestCase):
self.assertEquals(payload['user_id'], self.user_id)
self.assertEquals(payload['instance_id'], instance['uuid'])
self.assertEquals(payload['instance_type'], 'm1.tiny')
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
self.assertEquals(str(payload['instance_type_id']), str(type_id))
for attr in ('display_name', 'created_at', 'launched_at',
'state', 'state_description',
@@ -309,9 +308,8 @@ class UsageInfoTestCase(test.TestCase):
self.assertEquals(payload['image_ref_url'], image_ref_url)
self.compute.terminate_instance(self.context, instance)
- def test_notify_usage_exists_fail_on_deleted_instance(self):
- # notify_usage_exists should not work for a deleted VM. A
- # notification should be done before the instance is deleted in the db.
+ def test_notify_usage_exists_deleted_instance(self):
+ # Ensure 'exists' notification generates appropriate usage data.
instance_id = self._create_instance()
instance = db.instance_get(self.context, instance_id)
# Set some system metadata
@@ -323,8 +321,27 @@ class UsageInfoTestCase(test.TestCase):
self.compute.terminate_instance(self.context, instance)
instance = db.instance_get(self.context.elevated(read_deleted='yes'),
instance_id)
- self.assertRaises(KeyError, compute_utils.notify_usage_exists,
- self.context, instance)
+ compute_utils.notify_usage_exists(self.context, instance)
+ msg = test_notifier.NOTIFICATIONS[-1]
+ self.assertEquals(msg['priority'], 'INFO')
+ self.assertEquals(msg['event_type'], 'compute.instance.exists')
+ payload = msg['payload']
+ self.assertEquals(payload['tenant_id'], self.project_id)
+ self.assertEquals(payload['user_id'], self.user_id)
+ self.assertEquals(payload['instance_id'], instance['uuid'])
+ self.assertEquals(payload['instance_type'], 'm1.tiny')
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
+ self.assertEquals(str(payload['instance_type_id']), str(type_id))
+ for attr in ('display_name', 'created_at', 'launched_at',
+ 'state', 'state_description',
+ 'bandwidth', 'audit_period_beginning',
+ 'audit_period_ending', 'image_meta'):
+ self.assertTrue(attr in payload,
+ msg="Key %s not in payload" % attr)
+ self.assertEquals(payload['image_meta'],
+ {'md_key1': 'val1', 'md_key2': 'val2'})
+ image_ref_url = "%s/images/1" % glance.generate_glance_url()
+ self.assertEquals(payload['image_ref_url'], image_ref_url)
def test_notify_usage_exists_instance_not_found(self):
# Ensure 'exists' notification generates appropriate usage data.
@@ -340,7 +357,7 @@ class UsageInfoTestCase(test.TestCase):
self.assertEquals(payload['user_id'], self.user_id)
self.assertEquals(payload['instance_id'], instance['uuid'])
self.assertEquals(payload['instance_type'], 'm1.tiny')
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
self.assertEquals(str(payload['instance_type_id']), str(type_id))
for attr in ('display_name', 'created_at', 'launched_at',
'state', 'state_description',
@@ -376,7 +393,7 @@ class UsageInfoTestCase(test.TestCase):
self.assertEquals(payload['user_id'], self.user_id)
self.assertEquals(payload['instance_id'], instance['uuid'])
self.assertEquals(payload['instance_type'], 'm1.tiny')
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
self.assertEquals(str(payload['instance_type_id']), str(type_id))
for attr in ('display_name', 'created_at', 'launched_at',
'state', 'state_description', 'image_meta'):
diff --git a/nova/tests/compute/test_host_api.py b/nova/tests/compute/test_host_api.py
index 6a87205ae..f9ef3894d 100644
--- a/nova/tests/compute/test_host_api.py
+++ b/nova/tests/compute/test_host_api.py
@@ -252,7 +252,8 @@ class ComputeHostAPITestCase(test.TestCase):
class ComputeHostAPICellsTestCase(ComputeHostAPITestCase):
def setUp(self):
- self.flags(compute_api_class='nova.compute.cells_api.ComputeCellsAPI')
+ self.flags(enable=True, group='cells')
+ self.flags(cell_type='api', group='cells')
super(ComputeHostAPICellsTestCase, self).setUp()
def _mock_rpc_call(self, expected_message, result=None):
diff --git a/nova/tests/compute/test_keypairs.py b/nova/tests/compute/test_keypairs.py
new file mode 100644
index 000000000..f82d69ccb
--- /dev/null
+++ b/nova/tests/compute/test_keypairs.py
@@ -0,0 +1,174 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+"""Tests for keypair API."""
+
+from oslo.config import cfg
+
+from nova.compute import api as compute_api
+from nova import context
+from nova import db
+from nova import exception
+from nova import quota
+from nova.tests.compute import test_compute
+
+
+CONF = cfg.CONF
+QUOTAS = quota.QUOTAS
+
+
+class KeypairAPITestCase(test_compute.BaseTestCase):
+ def setUp(self):
+ super(KeypairAPITestCase, self).setUp()
+ self.keypair_api = compute_api.KeypairAPI()
+ self.ctxt = context.RequestContext('fake', 'fake')
+ self._keypair_db_call_stubs()
+ self.existing_key_name = 'fake existing key name'
+ self.pub_key = ('ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLnVkqJu9WVf'
+ '/5StU3JCrBR2r1s1j8K1tux+5XeSvdqaM8lMFNorzbY5iyoBbR'
+ 'S56gy1jmm43QsMPJsrpfUZKcJpRENSe3OxIIwWXRoiapZe78u/'
+ 'a9xKwj0avFYMcws9Rk9iAB7W4K1nEJbyCPl5lRBoyqeHBqrnnu'
+ 'XWEgGxJCK0Ah6wcOzwlEiVjdf4kxzXrwPHyi7Ea1qvnNXTziF8'
+ 'yYmUlH4C8UXfpTQckwSwpDyxZUc63P8q+vPbs3Q2kw+/7vvkCK'
+ 'HJAXVI+oCiyMMfffoTq16M1xfV58JstgtTqAXG+ZFpicGajREU'
+ 'E/E3hO5MGgcHmyzIrWHKpe1n3oEGuz')
+ self.fingerprint = '4e:48:c6:a0:4a:f9:dd:b5:4c:85:54:5a:af:43:47:5a'
+
+ def _keypair_db_call_stubs(self):
+
+ def db_key_pair_get_all_by_user(context, user_id):
+ return [{'name': self.existing_key_name,
+ 'public_key': self.pub_key,
+ 'fingerprint': self.fingerprint}]
+
+ def db_key_pair_create(context, keypair):
+ pass
+
+ def db_key_pair_destroy(context, user_id, name):
+ pass
+
+ def db_key_pair_get(context, user_id, name):
+ if name == self.existing_key_name:
+ return {'name': self.existing_key_name,
+ 'public_key': self.pub_key,
+ 'fingerprint': self.fingerprint}
+ else:
+ raise exception.KeypairNotFound(user_id=user_id, name=name)
+
+ self.stubs.Set(db, "key_pair_get_all_by_user",
+ db_key_pair_get_all_by_user)
+ self.stubs.Set(db, "key_pair_create",
+ db_key_pair_create)
+ self.stubs.Set(db, "key_pair_destroy",
+ db_key_pair_destroy)
+ self.stubs.Set(db, "key_pair_get",
+ db_key_pair_get)
+
+
+class CreateImportSharedTestMixIn(object):
+ """Tests shared between create and import_key.
+
+ Mix-in pattern is used here so that these `test_*` methods aren't picked
+ up by the test runner unless they are part of a 'concrete' test case.
+ """
+
+ def assertKeyNameRaises(self, exc_class, expected_message, name):
+ func = getattr(self.keypair_api, self.func_name)
+
+ args = []
+ if self.func_name == 'import_key_pair':
+ args.append(self.pub_key)
+
+ exc = self.assertRaises(exc_class, func, self.ctxt, self.ctxt.user_id,
+ name, *args)
+ self.assertEqual(expected_message, unicode(exc))
+
+ def test_name_too_short(self):
+ msg = _('Keypair name must be between 1 and 255 characters long')
+ self.assertKeyNameRaises(exception.InvalidKeypair, msg, '')
+
+ def test_name_too_long(self):
+ msg = _('Keypair name must be between 1 and 255 characters long')
+ self.assertKeyNameRaises(exception.InvalidKeypair, msg, 'x' * 256)
+
+ def test_invalid_chars(self):
+ msg = _("Keypair name contains unsafe characters")
+ self.assertKeyNameRaises(exception.InvalidKeypair, msg,
+ '* BAD CHARACTERS! *')
+
+ def test_already_exists(self):
+ def db_key_pair_create_duplicate(context, keypair):
+ raise exception.KeyPairExists(key_name=keypair.get('name', ''))
+
+ self.stubs.Set(db, "key_pair_create", db_key_pair_create_duplicate)
+
+ msg = (_("Key pair '%(key_name)s' already exists.") %
+ {'key_name': self.existing_key_name})
+ self.assertKeyNameRaises(exception.KeyPairExists, msg,
+ self.existing_key_name)
+
+ def test_quota_limit(self):
+ def fake_quotas_count(self, context, resource, *args, **kwargs):
+ return CONF.quota_key_pairs
+
+ self.stubs.Set(QUOTAS, "count", fake_quotas_count)
+
+ msg = _("Maximum number of key pairs exceeded")
+ self.assertKeyNameRaises(exception.KeypairLimitExceeded, msg, 'foo')
+
+
+class CreateKeypairTestCase(KeypairAPITestCase, CreateImportSharedTestMixIn):
+ func_name = 'create_key_pair'
+
+ def test_success(self):
+ keypair = self.keypair_api.create_key_pair(self.ctxt,
+ self.ctxt.user_id, 'foo')
+ self.assertEqual('foo', keypair['name'])
+
+
+class ImportKeypairTestCase(KeypairAPITestCase, CreateImportSharedTestMixIn):
+ func_name = 'import_key_pair'
+
+ def test_success(self):
+ keypair = self.keypair_api.import_key_pair(self.ctxt,
+ self.ctxt.user_id,
+ 'foo',
+ self.pub_key)
+ self.assertEqual('foo', keypair['name'])
+ self.assertEqual(self.fingerprint, keypair['fingerprint'])
+ self.assertEqual(self.pub_key, keypair['public_key'])
+
+ def test_bad_key_data(self):
+ exc = self.assertRaises(exception.InvalidKeypair,
+ self.keypair_api.import_key_pair,
+ self.ctxt, self.ctxt.user_id, 'foo',
+ 'bad key data')
+ self.assertEqual(u'Keypair data is invalid', unicode(exc))
+
+
+class GetKeypairTestCase(KeypairAPITestCase):
+ def test_success(self):
+ keypair = self.keypair_api.get_key_pair(self.ctxt,
+ self.ctxt.user_id,
+ self.existing_key_name)
+ self.assertEqual(self.existing_key_name, keypair['name'])
+
+
+class GetKeypairsTestCase(KeypairAPITestCase):
+ def test_success(self):
+ keypairs = self.keypair_api.get_key_pairs(self.ctxt, self.ctxt.user_id)
+ self.assertEqual([self.existing_key_name],
+ [k['name'] for k in keypairs])
diff --git a/nova/tests/compute/test_resource_tracker.py b/nova/tests/compute/test_resource_tracker.py
index 43bed38ba..e8514cc8e 100644
--- a/nova/tests/compute/test_resource_tracker.py
+++ b/nova/tests/compute/test_resource_tracker.py
@@ -112,7 +112,7 @@ class BaseTestCase(test.TestCase):
'instance_update_and_get_original',
self._fake_instance_update_and_get_original)
self.stubs.Set(self.conductor.db,
- 'instance_type_get', self._fake_instance_type_get)
+ 'instance_type_get', self._fake_flavor_get)
self.host = 'fakehost'
@@ -153,7 +153,7 @@ class BaseTestCase(test.TestCase):
def _fake_instance_system_metadata(self, instance_type, prefix=''):
sys_meta = []
- for key in flavors.system_metadata_instance_type_props.keys():
+ for key in flavors.system_metadata_flavor_props.keys():
sys_meta.append({'key': '%sinstance_type_%s' % (prefix, key),
'value': instance_type[key]})
return sys_meta
@@ -162,7 +162,7 @@ class BaseTestCase(test.TestCase):
# Default to an instance ready to resize to or from the same
# instance_type
- itype = self._fake_instance_type_create()
+ itype = self._fake_flavor_create()
sys_meta = self._fake_instance_system_metadata(itype)
if stash:
@@ -193,7 +193,7 @@ class BaseTestCase(test.TestCase):
self._instances[instance_uuid] = instance
return instance
- def _fake_instance_type_create(self, **kwargs):
+ def _fake_flavor_create(self, **kwargs):
instance_type = {
'id': 1,
'name': 'fakeitype',
@@ -215,7 +215,7 @@ class BaseTestCase(test.TestCase):
def _fake_instance_get_all_by_host_and_node(self, context, host, nodename):
return [i for i in self._instances.values() if i['host'] == host]
- def _fake_instance_type_get(self, ctxt, id_):
+ def _fake_flavor_get(self, ctxt, id_):
return self._instance_types[id_]
def _fake_instance_update_and_get_original(self, context, instance_uuid,
@@ -286,7 +286,7 @@ class UnsupportedDriverTestCase(BaseTestCase):
def test_disabled_resize_claim(self):
instance = self._fake_instance()
- instance_type = self._fake_instance_type_create()
+ instance_type = self._fake_flavor_create()
claim = self.tracker.resize_claim(self.context, instance,
instance_type)
self.assertEqual(0, claim.memory_mb)
@@ -296,7 +296,7 @@ class UnsupportedDriverTestCase(BaseTestCase):
def test_disabled_resize_context_claim(self):
instance = self._fake_instance()
- instance_type = self._fake_instance_type_create()
+ instance_type = self._fake_flavor_create()
with self.tracker.resize_claim(self.context, instance, instance_type) \
as claim:
self.assertEqual(0, claim.memory_mb)
@@ -666,7 +666,7 @@ class ResizeClaimTestCase(BaseTrackerTestCase):
'migration_create', self._fake_migration_create)
self.instance = self._fake_instance()
- self.instance_type = self._fake_instance_type_create()
+ self.instance_type = self._fake_flavor_create()
def _fake_migration_create(self, context, values=None):
instance_uuid = str(uuid.uuid1())
@@ -737,9 +737,9 @@ class ResizeClaimTestCase(BaseTrackerTestCase):
def test_same_host(self):
self.limits['vcpu'] = 3
- src_type = self._fake_instance_type_create(id=2, memory_mb=1,
+ src_type = self._fake_flavor_create(id=2, memory_mb=1,
root_gb=1, ephemeral_gb=0, vcpus=1)
- dest_type = self._fake_instance_type_create(id=2, memory_mb=2,
+ dest_type = self._fake_flavor_create(id=2, memory_mb=2,
root_gb=2, ephemeral_gb=1, vcpus=2)
# make an instance of src_type:
@@ -848,7 +848,7 @@ class ResizeClaimTestCase(BaseTrackerTestCase):
self.assertTrue(self.tracker._instance_in_resize_state(instance))
def test_dupe_filter(self):
- self._fake_instance_type_create(id=2, memory_mb=1, root_gb=1,
+ self._fake_flavor_create(id=2, memory_mb=1, root_gb=1,
ephemeral_gb=1, vcpus=1)
instance = self._fake_instance(host=self.host)
diff --git a/nova/tests/compute/test_virtapi.py b/nova/tests/compute/test_virtapi.py
index e3887d033..7cf05d87d 100644
--- a/nova/tests/compute/test_virtapi.py
+++ b/nova/tests/compute/test_virtapi.py
@@ -64,7 +64,7 @@ class VirtAPIBaseTest(test.TestCase, test.APICoverage):
def test_security_group_get_by_instance(self):
self.assertExpected('security_group_get_by_instance',
- {'id': 'fake-id'})
+ {'uuid': 'fake-id'})
def test_security_group_rule_get_by_security_group(self):
self.assertExpected('security_group_rule_get_by_security_group',
@@ -99,11 +99,12 @@ class FakeVirtAPITest(VirtAPIBaseTest):
self.mox.StubOutWithMock(db, db_method)
if method in ('aggregate_metadata_add', 'aggregate_metadata_delete',
- 'security_group_rule_get_by_security_group',
- 'security_group_get_by_instance'):
+ 'security_group_rule_get_by_security_group'):
# NOTE(danms): FakeVirtAPI will convert the first argument to
# argument['id'], so expect that in the actual db call
e_args = tuple([args[0]['id']] + list(args[1:]))
+ elif method in ('test_security_group_get_by_instance'):
+ e_args = tuple([args[0]['uuid']] + list(args[1:]))
else:
e_args = args
diff --git a/nova/tests/test_vmmode.py b/nova/tests/compute/test_vmmode.py
index 374f040ed..374f040ed 100644
--- a/nova/tests/test_vmmode.py
+++ b/nova/tests/compute/test_vmmode.py
diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py
index 3aebf76af..beb0d3b61 100644
--- a/nova/tests/conductor/test_conductor.py
+++ b/nova/tests/conductor/test_conductor.py
@@ -30,6 +30,8 @@ from nova.db.sqlalchemy import models
from nova import exception as exc
from nova import notifications
from nova.openstack.common import jsonutils
+from nova.openstack.common.notifier import api as notifier_api
+from nova.openstack.common.notifier import test_notifier
from nova.openstack.common.rpc import common as rpc_common
from nova.openstack.common import timeutils
from nova import quota
@@ -55,6 +57,11 @@ class _BaseTestCase(object):
self.project_id = 'fake'
self.context = FakeContext(self.user_id, self.project_id)
+ notifier_api._reset_drivers()
+ self.addCleanup(notifier_api._reset_drivers)
+ self.flags(notification_driver=[test_notifier.__name__])
+ test_notifier.NOTIFICATIONS = []
+
def stub_out_client_exceptions(self):
def passthru(exceptions, func, *args, **kwargs):
return func(*args, **kwargs)
@@ -69,11 +76,10 @@ class _BaseTestCase(object):
inst['vm_state'] = vm_states.ACTIVE
inst['image_ref'] = FAKE_IMAGE_REF
inst['reservation_id'] = 'r-fakeres'
- inst['launch_time'] = '10'
inst['user_id'] = self.user_id
inst['project_id'] = self.project_id
inst['host'] = 'fake_host'
- type_id = flavors.get_instance_type_by_name(type_name)['id']
+ type_id = flavors.get_flavor_by_name(type_name)['id']
inst['instance_type_id'] = type_id
inst['ami_launch_index'] = 0
inst['memory_mb'] = 0
@@ -268,10 +274,10 @@ class _BaseTestCase(object):
self.assertEqual(result, 'foo')
def test_security_group_get_by_instance(self):
- fake_instance = {'id': 'fake-instance'}
+ fake_instance = {'uuid': 'fake-instance'}
self.mox.StubOutWithMock(db, 'security_group_get_by_instance')
db.security_group_get_by_instance(
- self.context, fake_instance['id']).AndReturn('it worked')
+ self.context, fake_instance['uuid']).AndReturn('it worked')
self.mox.ReplayAll()
result = self.conductor.security_group_get_by_instance(self.context,
fake_instance)
@@ -315,7 +321,7 @@ class _BaseTestCase(object):
self.context, fake_inst['uuid']).AndReturn('fake-result')
self.mox.ReplayAll()
result = self.conductor.block_device_mapping_get_all_by_instance(
- self.context, fake_inst)
+ self.context, fake_inst, legacy=False)
self.assertEqual(result, 'fake-result')
def test_instance_get_active_by_window_joined(self):
@@ -351,7 +357,7 @@ class _BaseTestCase(object):
fake_instance,
fake_values)
- def test_instance_type_get(self):
+ def test_flavor_get(self):
self.mox.StubOutWithMock(db, 'instance_type_get')
db.instance_type_get(self.context, 'fake-id').AndReturn('fake-type')
self.mox.ReplayAll()
@@ -368,20 +374,50 @@ class _BaseTestCase(object):
self.assertEqual(result, 'fake-usage')
def test_vol_usage_update(self):
+ # the vol_usage_update method sends the volume usage notifications
+ # as well as updating the database
self.mox.StubOutWithMock(db, 'vol_usage_update')
inst = self._create_fake_instance({
'project_id': 'fake-project_id',
'user_id': 'fake-user_id',
})
+ fake_usage = {'tot_last_refreshed': 20,
+ 'curr_last_refreshed': 10,
+ 'volume_id': 'fake-vol',
+ 'instance_uuid': inst['uuid'],
+ 'project_id': 'fake-project_id',
+ 'user_id': 'fake-user_id',
+ 'availability_zone': 'fake-az',
+ 'tot_reads': 11,
+ 'curr_reads': 22,
+ 'tot_read_bytes': 33,
+ 'curr_read_bytes': 44,
+ 'tot_writes': 55,
+ 'curr_writes': 66,
+ 'tot_write_bytes': 77,
+ 'curr_write_bytes': 88}
db.vol_usage_update(self.context, 'fake-vol', 'rd-req', 'rd-bytes',
'wr-req', 'wr-bytes', inst['uuid'],
'fake-project_id', 'fake-user_id', 'fake-az',
- 'fake-refr', 'fake-bool')
+ 'fake-refr', 'fake-bool', mox.IgnoreArg()).\
+ AndReturn(fake_usage)
self.mox.ReplayAll()
self.conductor.vol_usage_update(self.context, 'fake-vol', 'rd-req',
'rd-bytes', 'wr-req', 'wr-bytes',
inst, 'fake-refr', 'fake-bool')
+ self.assertEquals(len(test_notifier.NOTIFICATIONS), 1)
+ msg = test_notifier.NOTIFICATIONS[0]
+ payload = msg['payload']
+ self.assertEquals(payload['instance_id'], inst['uuid'])
+ self.assertEquals(payload['user_id'], 'fake-user_id')
+ self.assertEquals(payload['tenant_id'], 'fake-project_id')
+ self.assertEquals(payload['reads'], 33)
+ self.assertEquals(payload['read_bytes'], 77)
+ self.assertEquals(payload['writes'], 121)
+ self.assertEquals(payload['write_bytes'], 165)
+ self.assertEquals(payload['availability_zone'], 'fake-az')
+
def test_compute_node_create(self):
self.mox.StubOutWithMock(db, 'compute_node_create')
db.compute_node_create(self.context, 'fake-values').AndReturn(
@@ -1083,16 +1119,22 @@ class ConductorImportTest(test.TestCase):
self.flags(use_local=True, group='conductor')
self.assertTrue(isinstance(conductor.API(),
conductor_api.LocalAPI))
+ self.assertTrue(isinstance(conductor.ComputeTaskAPI(),
+ conductor_api.LocalComputeTaskAPI))
def test_import_conductor_rpc(self):
self.flags(use_local=False, group='conductor')
self.assertTrue(isinstance(conductor.API(),
conductor_api.API))
+ self.assertTrue(isinstance(conductor.ComputeTaskAPI(),
+ conductor_api.ComputeTaskAPI))
def test_import_conductor_override_to_local(self):
self.flags(use_local=False, group='conductor')
self.assertTrue(isinstance(conductor.API(use_local=True),
conductor_api.LocalAPI))
+ self.assertTrue(isinstance(conductor.ComputeTaskAPI(use_local=True),
+ conductor_api.LocalComputeTaskAPI))
class ConductorPolicyTest(test.TestCase):
@@ -1123,3 +1165,106 @@ class ConductorPolicyTest(test.TestCase):
for key in keys:
self.assertTrue(hasattr(instance, key))
+
+
+class _BaseTaskTestCase(object):
+ def setUp(self):
+ super(_BaseTaskTestCase, self).setUp()
+ self.user_id = 'fake'
+ self.project_id = 'fake'
+ self.context = FakeContext(self.user_id, self.project_id)
+
+ def test_migrate_server(self):
+ self.mox.StubOutWithMock(self.conductor_manager.scheduler_rpcapi,
+ 'live_migration')
+ self.conductor_manager.scheduler_rpcapi.live_migration(self.context,
+ 'block_migration', 'disk_over_commit', 'instance', 'destination')
+ self.mox.ReplayAll()
+ self.conductor.migrate_server(self.context, 'instance',
+ {'host': 'destination'}, True, False, None, 'block_migration',
+ 'disk_over_commit')
+
+ def test_migrate_server_fails_with_non_live(self):
+ self.assertRaises(NotImplementedError, self.conductor.migrate_server,
+ self.context, None, None, False, False, None, None, None)
+
+ def test_migrate_server_fails_with_rebuild(self):
+ self.assertRaises(NotImplementedError, self.conductor.migrate_server,
+ self.context, None, None, True, True, None, None, None)
+
+ def test_migrate_server_fails_with_flavor(self):
+ self.assertRaises(NotImplementedError, self.conductor.migrate_server,
+ self.context, None, None, True, False, "dummy", None, None)
+
+ def test_build_instances(self):
+ instance_type = flavors.get_default_flavor()
+ system_metadata = flavors.save_flavor_info({}, instance_type)
+ # NOTE(alaski): instance_type -> system_metadata -> instance_type loses
+ # some data (extra_specs) so we need both for testing.
+ instance_type_extract = flavors.extract_flavor(
+ {'system_metadata': system_metadata})
+ self.mox.StubOutWithMock(self.conductor_manager.scheduler_rpcapi,
+ 'run_instance')
+ self.conductor_manager.scheduler_rpcapi.run_instance(self.context,
+ request_spec={
+ 'image': {'fake_data': 'should_pass_silently'},
+ 'instance_properties': {'system_metadata': system_metadata,
+ 'uuid': 'fakeuuid'},
+ 'instance_type': instance_type_extract,
+ 'instance_uuids': ['fakeuuid', 'fakeuuid2'],
+ 'block_device_mapping': 'block_device_mapping',
+ 'security_group': 'security_groups'},
+ admin_password='admin_password',
+ injected_files='injected_files',
+ requested_networks='requested_networks', is_first_time=True,
+ filter_properties={})
+ self.mox.ReplayAll()
+ self.conductor.build_instances(self.context,
+ instances=[{'uuid': 'fakeuuid',
+ 'system_metadata': system_metadata},
+ {'uuid': 'fakeuuid2'}],
+ image={'fake_data': 'should_pass_silently'},
+ filter_properties={},
+ admin_password='admin_password',
+ injected_files='injected_files',
+ requested_networks='requested_networks',
+ security_groups='security_groups',
+ block_device_mapping='block_device_mapping')
+
+
+class ConductorTaskTestCase(_BaseTaskTestCase, test.TestCase):
+ """ComputeTaskManager Tests."""
+ def setUp(self):
+ super(ConductorTaskTestCase, self).setUp()
+ self.conductor = conductor_manager.ComputeTaskManager()
+ self.conductor_manager = self.conductor
+
+
+class ConductorTaskRPCAPITestCase(_BaseTaskTestCase, test.TestCase):
+ """Conductor compute_task RPC namespace Tests."""
+ def setUp(self):
+ super(ConductorTaskRPCAPITestCase, self).setUp()
+ self.conductor_service = self.start_service(
+ 'conductor', manager='nova.conductor.manager.ConductorManager')
+ self.conductor = conductor_rpcapi.ComputeTaskAPI()
+ service_manager = self.conductor_service.manager
+ self.conductor_manager = service_manager.compute_task_mgr
+
+
+class ConductorTaskAPITestCase(_BaseTaskTestCase, test.TestCase):
+ """Compute task API Tests."""
+ def setUp(self):
+ super(ConductorTaskAPITestCase, self).setUp()
+ self.conductor_service = self.start_service(
+ 'conductor', manager='nova.conductor.manager.ConductorManager')
+ self.conductor = conductor_api.ComputeTaskAPI()
+ service_manager = self.conductor_service.manager
+ self.conductor_manager = service_manager.compute_task_mgr
+
+
+class ConductorLocalComputeTaskAPITestCase(ConductorTaskAPITestCase):
+ """Conductor LocalComputeTaskAPI Tests."""
+ def setUp(self):
+ super(ConductorLocalComputeTaskAPITestCase, self).setUp()
+ self.conductor = conductor_api.LocalComputeTaskAPI()
+ self.conductor_manager = self.conductor._manager._target
diff --git a/nova/tests/console/test_console.py b/nova/tests/console/test_console.py
index e4211f258..76a71936a 100644
--- a/nova/tests/console/test_console.py
+++ b/nova/tests/console/test_console.py
@@ -53,7 +53,6 @@ class ConsoleTestCase(test.TestCase):
#inst['name'] = 'instance-1234'
inst['image_id'] = 1
inst['reservation_id'] = 'r-fakeres'
- inst['launch_time'] = '10'
inst['user_id'] = self.user_id
inst['project_id'] = self.project_id
inst['instance_type_id'] = 1
diff --git a/nova/tests/test_db_api.py b/nova/tests/db/test_db_api.py
index 11165e168..94a151c21 100644
--- a/nova/tests/test_db_api.py
+++ b/nova/tests/db/test_db_api.py
@@ -27,9 +27,14 @@ import uuid as stdlib_uuid
import mox
from oslo.config import cfg
from sqlalchemy.dialects import sqlite
+from sqlalchemy import exc
from sqlalchemy.exc import IntegrityError
+from sqlalchemy import MetaData
+from sqlalchemy.orm import query
from sqlalchemy.sql.expression import select
+from nova import block_device
+from nova.compute import vm_states
from nova import context
from nova import db
from nova.db.sqlalchemy import api as sqlalchemy_api
@@ -39,6 +44,7 @@ from nova import exception
from nova.openstack.common.db.sqlalchemy import session as db_session
from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
+from nova.quota import ReservableResource
from nova import test
from nova.tests import matchers
from nova import utils
@@ -52,6 +58,33 @@ get_engine = db_session.get_engine
get_session = db_session.get_session
+def _quota_reserve(context, project_id):
+ """Create sample Quota, QuotaUsage and Reservation objects.
+
+ There is no method db.quota_usage_create(), so we have to use
+ db.quota_reserve() for creating QuotaUsage objects.
+
+ Returns reservations uuids.
+
+ """
+ def get_sync(resource, usage):
+ def sync(elevated, project_id, session):
+ return {resource: usage}
+ return sync
+ quotas = {}
+ resources = {}
+ deltas = {}
+ for i in range(3):
+ resource = 'res%d' % i
+ quotas[resource] = db.quota_create(context, project_id, resource, i)
+ resources[resource] = ReservableResource(resource,
+ get_sync(resource, i), 'quota_res_%d' % i)
+ deltas[resource] = i
+ return db.quota_reserve(context, resources, quotas, deltas,
+ datetime.datetime.utcnow(), datetime.datetime.utcnow(),
+ datetime.timedelta(days=1), project_id)
+
+
class DbTestCase(test.TestCase):
def setUp(self):
super(DbTestCase, self).setUp()
@@ -59,7 +92,7 @@ class DbTestCase(test.TestCase):
self.project_id = 'fake'
self.context = context.RequestContext(self.user_id, self.project_id)
- def create_instances_with_args(self, **kwargs):
+ def create_instance_with_args(self, **kwargs):
args = {'reservation_id': 'a', 'image_ref': 1, 'host': 'host1',
'node': 'node1', 'project_id': self.project_id,
'vm_state': 'fake'}
@@ -91,36 +124,36 @@ class DbApiTestCase(DbTestCase):
otherprojectcontext = context.RequestContext(self.user_id,
"%s2" % self.project_id)
- self.create_instances_with_args(hostname='fake_name')
+ self.create_instance_with_args(hostname='fake_name')
# With scope 'global' any duplicate should fail, be it this project:
self.flags(osapi_compute_unique_server_name_scope='global')
self.assertRaises(exception.InstanceExists,
- self.create_instances_with_args,
+ self.create_instance_with_args,
hostname='fake_name')
# or another:
self.assertRaises(exception.InstanceExists,
- self.create_instances_with_args,
+ self.create_instance_with_args,
context=otherprojectcontext,
hostname='fake_name')
# With scope 'project' a duplicate in the project should fail:
self.flags(osapi_compute_unique_server_name_scope='project')
self.assertRaises(exception.InstanceExists,
- self.create_instances_with_args,
+ self.create_instance_with_args,
hostname='fake_name')
# With scope 'project' a duplicate in a different project should work:
self.flags(osapi_compute_unique_server_name_scope='project')
- self.create_instances_with_args(context=otherprojectcontext,
- hostname='fake_name')
+ self.create_instance_with_args(context=otherprojectcontext,
+ hostname='fake_name')
self.flags(osapi_compute_unique_server_name_scope=None)
def test_instance_metadata_get_all_query(self):
- self.create_instances_with_args(metadata={'foo': 'bar'})
- self.create_instances_with_args(metadata={'baz': 'quux'})
+ self.create_instance_with_args(metadata={'foo': 'bar'})
+ self.create_instance_with_args(metadata={'baz': 'quux'})
result = db.instance_metadata_get_all(self.context, [])
self.assertEqual(2, len(result))
@@ -153,7 +186,7 @@ class DbApiTestCase(DbTestCase):
check_exc_format(db.get_instance_uuid_by_ec2_id)
def test_instance_get_all_with_meta(self):
- inst = self.create_instances_with_args()
+ inst = self.create_instance_with_args()
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
result = db.instance_get_all(self.context)
for inst in result:
@@ -163,7 +196,7 @@ class DbApiTestCase(DbTestCase):
self.assertEqual(sys_meta, fake_sys)
def test_instance_get_all_by_filters_with_meta(self):
- inst = self.create_instances_with_args()
+ inst = self.create_instance_with_args()
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
result = db.instance_get_all_by_filters(self.context, {})
for inst in result:
@@ -173,7 +206,7 @@ class DbApiTestCase(DbTestCase):
self.assertEqual(sys_meta, fake_sys)
def test_instance_get_all_by_filters_without_meta(self):
- inst = self.create_instances_with_args()
+ inst = self.create_instance_with_args()
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
result = db.instance_get_all_by_filters(self.context, {},
columns_to_join=[])
@@ -184,34 +217,41 @@ class DbApiTestCase(DbTestCase):
self.assertEqual(sys_meta, {})
def test_instance_get_all_by_filters(self):
- self.create_instances_with_args()
- self.create_instances_with_args()
+ self.create_instance_with_args()
+ self.create_instance_with_args()
result = db.instance_get_all_by_filters(self.context, {})
self.assertEqual(2, len(result))
def test_instance_get_all_by_filters_regex(self):
- self.create_instances_with_args(display_name='test1')
- self.create_instances_with_args(display_name='teeeest2')
- self.create_instances_with_args(display_name='diff')
+ self.create_instance_with_args(display_name='test1')
+ self.create_instance_with_args(display_name='teeeest2')
+ self.create_instance_with_args(display_name='diff')
result = db.instance_get_all_by_filters(self.context,
{'display_name': 't.*st.'})
self.assertEqual(2, len(result))
+ def test_instance_get_all_by_filters_exact_match(self):
+ self.create_instance_with_args(host='host1')
+ self.create_instance_with_args(host='host12')
+ result = db.instance_get_all_by_filters(self.context,
+ {'host': 'host1'})
+ self.assertEqual(1, len(result))
+
def test_instance_get_all_by_filters_metadata(self):
- self.create_instances_with_args(metadata={'foo': 'bar'})
- self.create_instances_with_args()
+ self.create_instance_with_args(metadata={'foo': 'bar'})
+ self.create_instance_with_args()
result = db.instance_get_all_by_filters(self.context,
{'metadata': {'foo': 'bar'}})
self.assertEqual(1, len(result))
def test_instance_get_all_by_filters_unicode_value(self):
- self.create_instances_with_args(display_name=u'test♥')
+ self.create_instance_with_args(display_name=u'test♥')
result = db.instance_get_all_by_filters(self.context,
{'display_name': u'test'})
self.assertEqual(1, len(result))
def test_instance_get_by_uuid(self):
- inst = self.create_instances_with_args()
+ inst = self.create_instance_with_args()
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
result = db.instance_get_by_uuid(self.context, inst['uuid'])
meta = utils.metadata_to_dict(result['metadata'])
@@ -220,7 +260,7 @@ class DbApiTestCase(DbTestCase):
self.assertEqual(sys_meta, fake_sys)
def test_instance_get_by_uuid_join_empty(self):
- inst = self.create_instances_with_args()
+ inst = self.create_instance_with_args()
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
result = db.instance_get_by_uuid(self.context, inst['uuid'],
columns_to_join=[])
@@ -230,7 +270,7 @@ class DbApiTestCase(DbTestCase):
self.assertEqual(sys_meta, {})
def test_instance_get_by_uuid_join_meta(self):
- inst = self.create_instances_with_args()
+ inst = self.create_instance_with_args()
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
result = db.instance_get_by_uuid(self.context, inst['uuid'],
columns_to_join=['metadata'])
@@ -240,7 +280,7 @@ class DbApiTestCase(DbTestCase):
self.assertEqual(sys_meta, {})
def test_instance_get_by_uuid_join_sys_meta(self):
- inst = self.create_instances_with_args()
+ inst = self.create_instance_with_args()
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
result = db.instance_get_by_uuid(self.context, inst['uuid'],
columns_to_join=['system_metadata'])
@@ -250,8 +290,8 @@ class DbApiTestCase(DbTestCase):
self.assertEqual(sys_meta, fake_sys)
def test_instance_get_all_by_filters_deleted(self):
- inst1 = self.create_instances_with_args()
- inst2 = self.create_instances_with_args(reservation_id='b')
+ inst1 = self.create_instance_with_args()
+ inst2 = self.create_instance_with_args(reservation_id='b')
db.instance_destroy(self.context, inst1['uuid'])
result = db.instance_get_all_by_filters(self.context, {})
self.assertEqual(2, len(result))
@@ -262,10 +302,44 @@ class DbApiTestCase(DbTestCase):
else:
self.assertTrue(result[1]['deleted'])
+ def test_instance_get_all_by_filters_deleted_and_soft_deleted(self):
+ inst1 = self.create_instance_with_args()
+ inst2 = self.create_instance_with_args(vm_state=vm_states.SOFT_DELETED)
+ inst3 = self.create_instance_with_args()
+ db.instance_destroy(self.context, inst1['uuid'])
+ result = db.instance_get_all_by_filters(self.context,
+ {'deleted': True})
+ self.assertEqual(2, len(result))
+ self.assertIn(inst1['id'], [result[0]['id'], result[1]['id']])
+ self.assertIn(inst2['id'], [result[0]['id'], result[1]['id']])
+
+ def test_instance_get_all_by_filters_deleted_no_soft_deleted(self):
+ inst1 = self.create_instance_with_args()
+ inst2 = self.create_instance_with_args(vm_state=vm_states.SOFT_DELETED)
+ inst3 = self.create_instance_with_args()
+ db.instance_destroy(self.context, inst1['uuid'])
+ result = db.instance_get_all_by_filters(self.context,
+ {'deleted': True,
+ 'soft_deleted': False})
+ self.assertEqual(1, len(result))
+ self.assertEqual(inst1['id'], result[0]['id'])
+
+ def test_instance_get_all_by_filters_alive_and_soft_deleted(self):
+ inst1 = self.create_instance_with_args()
+ inst2 = self.create_instance_with_args(vm_state=vm_states.SOFT_DELETED)
+ inst3 = self.create_instance_with_args()
+ db.instance_destroy(self.context, inst1['uuid'])
+ result = db.instance_get_all_by_filters(self.context,
+ {'deleted': False,
+ 'soft_deleted': True})
+ self.assertEqual(2, len(result))
+ self.assertIn(inst2['id'], [result[0]['id'], result[1]['id']])
+ self.assertIn(inst3['id'], [result[0]['id'], result[1]['id']])
+
def test_instance_get_all_by_host_and_node_no_join(self):
# Test that system metadata is not joined.
sys_meta = {'foo': 'bar'}
- expected = self.create_instances_with_args(system_metadata=sys_meta)
+ expected = self.create_instance_with_args(system_metadata=sys_meta)
elevated = self.context.elevated()
instances = db.instance_get_all_by_host_and_node(elevated, 'host1',
@@ -458,7 +532,7 @@ class DbApiTestCase(DbTestCase):
system_meta = db.instance_system_metadata_get(ctxt, instance['uuid'])
self.assertEqual('baz', system_meta['original_image_ref'])
- def test_delete_instance_and_system_metadata_on_instance_destroy(self):
+ def test_delete_instance_metadata_on_instance_destroy(self):
ctxt = context.get_admin_context()
# Create an instance with some metadata
@@ -470,22 +544,19 @@ class DbApiTestCase(DbTestCase):
self.assertEqual('meow', instance_meta['key1'])
db.instance_destroy(ctxt, instance['uuid'])
instance_meta = db.instance_metadata_get(ctxt, instance['uuid'])
- instance_system_meta = db.instance_system_metadata_get(ctxt,
- instance['uuid'])
- # Make sure instance and system metadata is deleted as well
+ # Make sure instance metadata is deleted as well
self.assertEqual({}, instance_meta)
- self.assertEqual({}, instance_system_meta)
def test_instance_update_unique_name(self):
otherprojectcontext = context.RequestContext(self.user_id,
"%s2" % self.project_id)
- inst = self.create_instances_with_args(hostname='fake_name')
+ inst = self.create_instance_with_args(hostname='fake_name')
uuid1p1 = inst['uuid']
- inst = self.create_instances_with_args(hostname='fake_name2')
+ inst = self.create_instance_with_args(hostname='fake_name2')
uuid2p1 = inst['uuid']
- inst = self.create_instances_with_args(context=otherprojectcontext,
+ inst = self.create_instance_with_args(context=otherprojectcontext,
hostname='fake_name3')
uuid1p2 = inst['uuid']
@@ -1111,6 +1182,19 @@ class DbApiTestCase(DbTestCase):
ec2_id = db.get_ec2_snapshot_id_by_uuid(self.context, 'fake-uuid')
self.assertEqual(ref['id'], ec2_id)
+ def test_security_group_update(self):
+ ctxt = context.get_admin_context()
+ values = {'security_group': {'tenant_id': '123',
+ 'name': 'test', 'description': 'test-description'}}
+ sg = db.security_group_create(ctxt, values)
+
+ values['security_group']['name'] = 'test_name'
+ values['security_group']['description'] = 'test_desc'
+ sg = db.security_group_update(ctxt, sg['id'], values)
+ self.assertNotEqual(None, sg)
+ self.assertEqual(sg['security_group']['name'], 'test_name')
+ self.assertEqual(sg['security_group']['description'], 'test_desc')
+
def test_bw_usage_calls(self):
ctxt = context.get_admin_context()
now = timeutils.utcnow()
@@ -1232,9 +1316,9 @@ class NotDbApiTestCase(DbTestCase):
def test_instance_get_all_by_filters_regex_unsupported_db(self):
# Ensure that the 'LIKE' operator is used for unsupported dbs.
- self.create_instances_with_args(display_name='test1')
- self.create_instances_with_args(display_name='test.*')
- self.create_instances_with_args(display_name='diff')
+ self.create_instance_with_args(display_name='test1')
+ self.create_instance_with_args(display_name='test.*')
+ self.create_instance_with_args(display_name='diff')
result = db.instance_get_all_by_filters(self.context,
{'display_name': 'test.*'})
self.assertEqual(1, len(result))
@@ -1243,9 +1327,9 @@ class NotDbApiTestCase(DbTestCase):
self.assertEqual(2, len(result))
def test_instance_get_all_by_filters_paginate(self):
- test1 = self.create_instances_with_args(display_name='test1')
- test2 = self.create_instances_with_args(display_name='test2')
- test3 = self.create_instances_with_args(display_name='test3')
+ test1 = self.create_instance_with_args(display_name='test1')
+ test2 = self.create_instance_with_args(display_name='test2')
+ test3 = self.create_instance_with_args(display_name='test3')
result = db.instance_get_all_by_filters(self.context,
{'display_name': '%test%'},
@@ -1477,7 +1561,7 @@ class AggregateDBApiTestCase(test.TestCase):
def test_aggregate_get_all(self):
ctxt = context.get_admin_context()
counter = 3
- for c in xrange(counter):
+ for c in range(counter):
_create_aggregate(context=ctxt,
values={'name': 'fake_aggregate_%d' % c},
metadata=None)
@@ -1489,11 +1573,11 @@ class AggregateDBApiTestCase(test.TestCase):
add_counter = 5
remove_counter = 2
aggregates = []
- for c in xrange(1, add_counter):
+ for c in range(1, add_counter):
values = {'name': 'fake_aggregate_%d' % c}
aggregates.append(_create_aggregate(context=ctxt,
values=values, metadata=None))
- for c in xrange(1, remove_counter):
+ for c in range(1, remove_counter):
db.aggregate_delete(ctxt, aggregates[c - 1]['id'])
results = db.aggregate_get_all(ctxt)
self.assertEqual(len(results), add_counter - remove_counter)
@@ -1606,17 +1690,17 @@ class SqlAlchemyDbApiTestCase(DbTestCase):
def test_instance_get_all_by_host(self):
ctxt = context.get_admin_context()
- self.create_instances_with_args()
- self.create_instances_with_args()
- self.create_instances_with_args(host='host2')
+ self.create_instance_with_args()
+ self.create_instance_with_args()
+ self.create_instance_with_args(host='host2')
result = sqlalchemy_api._instance_get_all_uuids_by_host(ctxt, 'host1')
self.assertEqual(2, len(result))
def test_instance_get_all_uuids_by_host(self):
ctxt = context.get_admin_context()
- self.create_instances_with_args()
- self.create_instances_with_args()
- self.create_instances_with_args(host='host2')
+ self.create_instance_with_args()
+ self.create_instance_with_args()
+ self.create_instance_with_args(host='host2')
result = sqlalchemy_api._instance_get_all_uuids_by_host(ctxt, 'host1')
self.assertEqual(2, len(result))
self.assertEqual(types.UnicodeType, type(result[0]))
@@ -1711,6 +1795,38 @@ class CapacityTestCase(test.TestCase):
item['id'], {})
self.assertNotEqual(item['updated_at'], item_updated['updated_at'])
+ def test_compute_node_stat_unchanged(self):
+ # don't update unchanged stat values:
+ item = self._create_helper('host1')
+
+ compute_node_id = item['id']
+ stats = self._stats_as_dict(item['stats'])
+ self.assertEqual(4, len(stats.keys()))
+
+ orig_update_stats = sqlalchemy_api._update_stats
+
+ def update(context, new_stats, compute_id, session, prune_stats=False):
+ # wrap the session object to see which stats get updated
+ orig_add = session.add
+ added = []
+
+ def add(instance):
+ added.append(instance)
+ orig_add(instance)
+
+ self.stubs.Set(session, 'add', add)
+ orig_update_stats(context, new_stats, compute_id, session,
+ prune_stats=False)
+
+ # no stats should have been added to the session:
+ self.assertEqual(0, len(added))
+
+ self.stubs.Set(sqlalchemy_api, '_update_stats', update)
+
+ # save with same (unchanged) stats again:
+ values = {'stats': stats}
+ db.compute_node_update(self.ctxt, compute_node_id, values)
+
def test_compute_node_stat_prune(self):
item = self._create_helper('host1')
for stat in item['stats']:
@@ -1813,7 +1929,10 @@ class ModelsObjectComparatorMixin(object):
obj1 = self._dict_from_object(obj1, ignored_keys)
obj2 = self._dict_from_object(obj2, ignored_keys)
- self.assertEqual(len(obj1), len(obj2))
+ self.assertEqual(len(obj1),
+ len(obj2),
+ "Keys mismatch: %s" %
+ str(set(obj1.keys()) ^ set(obj2.keys())))
for key, value in obj1.iteritems():
self.assertEqual(value, obj2[key])
@@ -1832,6 +1951,292 @@ class ModelsObjectComparatorMixin(object):
self.assertIn(primitive, primitives1)
+class ReservationTestCase(test.TestCase, ModelsObjectComparatorMixin):
+
+ """Tests for db.api.reservation_* methods."""
+
+ def setUp(self):
+ super(ReservationTestCase, self).setUp()
+ self.ctxt = context.get_admin_context()
+ self.values = {'uuid': 'sample-uuid',
+ 'project_id': 'project1',
+ 'resource': 'resource',
+ 'delta': 42,
+ 'expire': datetime.datetime.utcnow() +
+ datetime.timedelta(days=1),
+ 'usage': {'id': 1}}
+
+ def _quota_reserve(self):
+ """Create sample Quota, QuotaUsage and Reservation objects.
+
+ There is no method db.quota_usage_create(), so we have to use
+ db.quota_reserve() for creating QuotaUsage objects.
+
+ Returns reservations uuids.
+
+ """
+ def get_sync(resource, usage):
+ def sync(elevated, project_id, session):
+ return {resource: usage}
+ return sync
+ quotas = {}
+ resources = {}
+ deltas = {}
+ for i in range(3):
+ resource = 'resource%d' % i
+ quotas[resource] = db.quota_create(self.ctxt, 'project1',
+ resource, i)
+ resources[resource] = ReservableResource(resource,
+ get_sync(resource, i), 'quota_res_%d' % i)
+ deltas[resource] = i
+ return db.quota_reserve(self.ctxt, resources, quotas, deltas,
+ datetime.datetime.utcnow(), datetime.datetime.utcnow(),
+ datetime.timedelta(days=1), self.values['project_id'])
+
+ def test_reservation_create(self):
+ reservation = db.reservation_create(self.ctxt, **self.values)
+ self._assertEqualObjects(self.values, reservation, ignored_keys=(
+ 'deleted', 'updated_at',
+ 'deleted_at', 'id',
+ 'created_at', 'usage',
+ 'usage_id'))
+ self.assertEqual(reservation['usage_id'], self.values['usage']['id'])
+
+ def test_reservation_get(self):
+ reservation = db.reservation_create(self.ctxt, **self.values)
+ reservation_db = db.reservation_get(self.ctxt, self.values['uuid'])
+ self._assertEqualObjects(reservation, reservation_db)
+
+ def test_reservation_get_nonexistent(self):
+ self.assertRaises(exception.ReservationNotFound, db.reservation_get,
+ self.ctxt, 'non-exitent-resevation-uuid')
+
+ def test_reservation_commit(self):
+ reservations = self._quota_reserve()
+ expected = {'project_id': 'project1',
+ 'resource0': {'reserved': 0, 'in_use': 0},
+ 'resource1': {'reserved': 1, 'in_use': 1},
+ 'resource2': {'reserved': 2, 'in_use': 2}}
+ self.assertEqual(expected, db.quota_usage_get_all_by_project(
+ self.ctxt, 'project1'))
+ db.reservation_get(self.ctxt, reservations[0])
+ db.reservation_commit(self.ctxt, reservations, 'project1')
+ self.assertRaises(exception.ReservationNotFound,
+ db.reservation_get, self.ctxt, reservations[0])
+ expected = {'project_id': 'project1',
+ 'resource0': {'reserved': 0, 'in_use': 0},
+ 'resource1': {'reserved': 0, 'in_use': 2},
+ 'resource2': {'reserved': 0, 'in_use': 4}}
+ self.assertEqual(expected, db.quota_usage_get_all_by_project(
+ self.ctxt, 'project1'))
+
+ def test_reservation_rollback(self):
+ reservations = self._quota_reserve()
+ expected = {'project_id': 'project1',
+ 'resource0': {'reserved': 0, 'in_use': 0},
+ 'resource1': {'reserved': 1, 'in_use': 1},
+ 'resource2': {'reserved': 2, 'in_use': 2}}
+ self.assertEqual(expected, db.quota_usage_get_all_by_project(
+ self.ctxt, 'project1'))
+ db.reservation_get(self.ctxt, reservations[0])
+ db.reservation_rollback(self.ctxt, reservations, 'project1')
+ self.assertRaises(exception.ReservationNotFound,
+ db.reservation_get, self.ctxt, reservations[0])
+ expected = {'project_id': 'project1',
+ 'resource0': {'reserved': 0, 'in_use': 0},
+ 'resource1': {'reserved': 0, 'in_use': 1},
+ 'resource2': {'reserved': 0, 'in_use': 2}}
+ self.assertEqual(expected, db.quota_usage_get_all_by_project(
+ self.ctxt, 'project1'))
+
+ def test_reservation_expire(self):
+ self.values['expire'] = datetime.datetime.utcnow() + datetime.\
+ timedelta(days=1)
+ reservations = self._quota_reserve()
+ db.reservation_expire(self.ctxt)
+
+ expected = {'project_id': 'project1',
+ 'resource0': {'reserved': 0, 'in_use': 0},
+ 'resource1': {'reserved': 0, 'in_use': 1},
+ 'resource2': {'reserved': 0, 'in_use': 2}}
+ self.assertEqual(expected, db.quota_usage_get_all_by_project(
+ self.ctxt, 'project1'))
+
+
+class SecurityGroupTestCase(test.TestCase, ModelsObjectComparatorMixin):
+ def setUp(self):
+ super(SecurityGroupTestCase, self).setUp()
+ self.ctxt = context.get_admin_context()
+
+ def _get_base_values(self):
+ return {
+ 'name': 'fake_sec_group',
+ 'description': 'fake_sec_group_descr',
+ 'user_id': 'fake',
+ 'project_id': 'fake',
+ 'instances': []
+ }
+
+ def _create_security_group(self, values):
+ v = self._get_base_values()
+ v.update(values)
+ return db.security_group_create(self.ctxt, v)
+
+ def test_security_group_create(self):
+ security_group = self._create_security_group({})
+ self.assertFalse(security_group['id'] is None)
+ for key, value in self._get_base_values().iteritems():
+ self.assertEqual(value, security_group[key])
+
+ def test_security_group_destroy(self):
+ security_group1 = self._create_security_group({})
+ security_group2 = \
+ self._create_security_group({'name': 'fake_sec_group2'})
+
+ db.security_group_destroy(self.ctxt, security_group1['id'])
+ self.assertRaises(exception.SecurityGroupNotFound,
+ db.security_group_get,
+ self.ctxt, security_group1['id'])
+ self._assertEqualObjects(db.security_group_get(self.ctxt,
+ security_group2['id']),
+ security_group2)
+
+ def test_security_group_get(self):
+ security_group1 = self._create_security_group({})
+ security_group2 = self._create_security_group(
+ {'name': 'fake_sec_group2'})
+ real_security_group = db.security_group_get(self.ctxt,
+ security_group1['id'])
+ self._assertEqualObjects(security_group1,
+ real_security_group)
+
+ def test_security_group_get_not_found_exception(self):
+ self.assertRaises(exception.SecurityGroupNotFound,
+ db.security_group_get, self.ctxt, 100500)
+
+ def test_security_group_get_by_name(self):
+ security_group1 = self._create_security_group({'name': 'fake1'})
+ security_group2 = self._create_security_group({'name': 'fake2'})
+
+ real_security_group1 = db.security_group_get_by_name(
+ self.ctxt,
+ security_group1['project_id'],
+ security_group1['name'])
+ real_security_group2 = db.security_group_get_by_name(
+ self.ctxt,
+ security_group2['project_id'],
+ security_group2['name'])
+ self._assertEqualObjects(security_group1, real_security_group1)
+ self._assertEqualObjects(security_group2, real_security_group2)
+
+ def test_security_group_get_by_project(self):
+ security_group1 = self._create_security_group(
+ {'name': 'fake1', 'project_id': 'fake_proj1'})
+ security_group2 = self._create_security_group(
+ {'name': 'fake2', 'project_id': 'fake_proj2'})
+
+ real1 = db.security_group_get_by_project(
+ self.ctxt,
+ security_group1['project_id'])
+ real2 = db.security_group_get_by_project(
+ self.ctxt,
+ security_group2['project_id'])
+
+ expected1, expected2 = [security_group1], [security_group2]
+ self._assertEqualListsOfObjects(expected1, real1,
+ ignored_keys=['instances'])
+ self._assertEqualListsOfObjects(expected2, real2,
+ ignored_keys=['instances'])
+
+ def test_security_group_get_by_instance(self):
+ instance = db.instance_create(self.ctxt, dict(host='foo'))
+ values = [
+ {'name': 'fake1', 'instances': [instance]},
+ {'name': 'fake2', 'instances': [instance]},
+ {'name': 'fake3', 'instances': []},
+ ]
+ security_groups = [self._create_security_group(vals)
+ for vals in values]
+
+ real = db.security_group_get_by_instance(self.ctxt,
+ instance['uuid'])
+ expected = security_groups[:2]
+ self._assertEqualListsOfObjects(expected, real,
+ ignored_keys=['instances'])
+
+ def test_security_group_get_all(self):
+ values = [
+ {'name': 'fake1', 'project_id': 'fake_proj1'},
+ {'name': 'fake2', 'project_id': 'fake_proj2'},
+ ]
+ security_groups = [self._create_security_group(vals)
+ for vals in values]
+
+ real = db.security_group_get_all(self.ctxt)
+
+ self._assertEqualListsOfObjects(security_groups, real,
+ ignored_keys=['instances'])
+
+ def test_security_group_exists(self):
+ security_group = self._create_security_group(
+ {'name': 'fake1', 'project_id': 'fake_proj1'})
+
+ real = (db.security_group_exists(self.ctxt,
+ security_group['project_id'],
+ security_group['name']),
+ db.security_group_exists(self.ctxt,
+ security_group['project_id'],
+ 'fake_sec_group'))
+
+ self.assertEqual((True, False), real)
+
+ def test_security_group_count_by_project(self):
+ values = [
+ {'name': 'fake1', 'project_id': 'fake_proj1'},
+ {'name': 'fake2', 'project_id': 'fake_proj1'},
+ {'name': 'fake3', 'project_id': 'fake_proj2'},
+ ]
+ security_groups = [self._create_security_group(vals)
+ for vals in values]
+
+ real = []
+ for project in ('fake_proj1', 'fake_proj2'):
+ real.append(db.security_group_count_by_project(self.ctxt, project))
+ expected = [2, 1]
+
+ self.assertEquals(expected, real)
+
+ def test_security_group_in_use(self):
+ instance = db.instance_create(self.ctxt, dict(host='foo'))
+ values = [
+ {'instances': [instance]},
+ {'instances': []},
+ ]
+
+ security_groups = [self._create_security_group(vals)
+ for vals in values]
+
+ real = []
+ for security_group in security_groups:
+ in_use = db.security_group_in_use(self.ctxt,
+ security_group['id'])
+ real.append(in_use)
+ expected = [True, False]
+
+ self.assertEquals(expected, real)
+
+ def test_security_group_ensure_default(self):
+ self.assertFalse(db.security_group_exists(self.ctxt,
+ self.ctxt.project_id,
+ 'default'))
+
+ default_group = db.security_group_ensure_default(self.ctxt)
+
+ self.assertTrue(db.security_group_exists(self.ctxt,
+ self.ctxt.project_id,
+ 'default'))
+
+
class ServiceTestCase(test.TestCase, ModelsObjectComparatorMixin):
def setUp(self):
super(ServiceTestCase, self).setUp()
@@ -2383,6 +2788,13 @@ class FixedIPTestCase(BaseInstanceTypeTestCase):
network_id=None,
updated_at=new))
+ def mock_db_query_first_to_raise_data_error_exception(self):
+ self.mox.StubOutWithMock(query.Query, 'first')
+ query.Query.first().AndRaise(exc.DataError(mox.IgnoreArg(),
+ mox.IgnoreArg(),
+ mox.IgnoreArg()))
+ self.mox.ReplayAll()
+
def test_fixed_ip_disassociate_all_by_timeout_single_host(self):
now = timeutils.utcnow()
self._timeout_test(self.ctxt, now, False)
@@ -2719,7 +3131,7 @@ class FixedIPTestCase(BaseInstanceTypeTestCase):
self.assertRaises(exception.FixedIpNotFound,
db.fixed_ip_get, self.ctxt, 0)
- def test_fixed_ip_get_sucsess2(self):
+ def test_fixed_ip_get_success2(self):
adress = 'fixed_ip_adress'
instance_uuid = self._create_instance()
network_id = db.network_create_safe(self.ctxt, {})['id']
@@ -2740,7 +3152,7 @@ class FixedIPTestCase(BaseInstanceTypeTestCase):
self.assertRaises(exception.NotAuthorized, db.fixed_ip_get,
self.ctxt, fixed_ip_id)
- def test_fixed_ip_get_sucsess(self):
+ def test_fixed_ip_get_success(self):
adress = 'fixed_ip_adress'
instance_uuid = self._create_instance()
network_id = db.network_create_safe(self.ctxt, {})['id']
@@ -2766,6 +3178,11 @@ class FixedIPTestCase(BaseInstanceTypeTestCase):
self.assertRaises(exception.FixedIpNotFoundForAddress,
db.fixed_ip_get_by_address_detailed, self.ctxt, 'x')
+ def test_fixed_ip_get_by_address_with_data_error_exception(self):
+ self.mock_db_query_first_to_raise_data_error_exception()
+ self.assertRaises(exception.FixedIpInvalid,
+ db.fixed_ip_get_by_address_detailed, self.ctxt, 'x')
+
def test_fixed_ip_get_by_address_detailed_sucsess(self):
adress = 'fixed_ip_adress_123'
instance_uuid = self._create_instance()
@@ -2847,6 +3264,13 @@ class FloatingIpTestCase(test.TestCase, ModelsObjectComparatorMixin):
'interface': 'fake_interface',
}
+ def mock_db_query_first_to_raise_data_error_exception(self):
+ self.mox.StubOutWithMock(query.Query, 'first')
+ query.Query.first().AndRaise(exc.DataError(mox.IgnoreArg(),
+ mox.IgnoreArg(),
+ mox.IgnoreArg()))
+ self.mox.ReplayAll()
+
def _create_floating_ip(self, values):
if not values:
values = {}
@@ -2867,6 +3291,11 @@ class FloatingIpTestCase(test.TestCase, ModelsObjectComparatorMixin):
self.assertRaises(exception.FloatingIpNotFound,
db.floating_ip_get, self.ctxt, 100500)
+ def test_floating_ip_get_with_long_id_not_found(self):
+ self.mock_db_query_first_to_raise_data_error_exception()
+ self.assertRaises(exception.InvalidID,
+ db.floating_ip_get, self.ctxt, 123456789101112)
+
def test_floating_ip_get_pools(self):
values = [
{'address': '0.0.0.0', 'pool': 'abc'},
@@ -2940,11 +3369,11 @@ class FloatingIpTestCase(test.TestCase, ModelsObjectComparatorMixin):
ips_for_non_delete = []
def create_ips(i):
- return [{'address': '1.1.%s.%s' % (i, k)} for k in xrange(1, 256)]
+ return [{'address': '1.1.%s.%s' % (i, k)} for k in range(1, 256)]
# NOTE(boris-42): Create more then 256 ip to check that
# _ip_range_splitter works properly.
- for i in xrange(1, 3):
+ for i in range(1, 3):
ips_for_delete.extend(create_ips(i))
ips_for_non_delete.extend(create_ips(3))
@@ -3084,9 +3513,9 @@ class FloatingIpTestCase(test.TestCase, ModelsObjectComparatorMixin):
'auto_assigned': False})
for addr in addresses]
- for i in xrange(2):
+ for i in range(2):
db.floating_ip_set_auto_assigned(self.ctxt, float_ips[i].address)
- for i in xrange(2):
+ for i in range(2):
float_ip = db.floating_ip_get(self.ctxt, float_ips[i].id)
self.assertTrue(float_ip.auto_assigned)
@@ -3172,6 +3601,12 @@ class FloatingIpTestCase(test.TestCase, ModelsObjectComparatorMixin):
db.floating_ip_get_by_address,
self.ctxt, 'non_exists_host')
+ def test_floating_ip_get_by_invalid_address(self):
+ self.mock_db_query_first_to_raise_data_error_exception()
+ self.assertRaises(exception.InvalidIpAddressError,
+ db.floating_ip_get_by_address,
+ self.ctxt, 'non_exists_host')
+
def test_floating_ip_get_by_fixed_address(self):
fixed_float = [
('1.1.1.1', '2.2.2.1'),
@@ -3570,8 +4005,11 @@ class BlockDeviceMappingTestCase(test.TestCase):
def _create_bdm(self, values):
values.setdefault('instance_uuid', self.instance['uuid'])
values.setdefault('device_name', 'fake_device')
- db.block_device_mapping_create(self.ctxt, values)
- uuid = values['instance_uuid']
+ values.setdefault('source_type', 'volume')
+ values.setdefault('destination_type', 'volume')
+ block_dev = block_device.BlockDeviceDict(values)
+ db.block_device_mapping_create(self.ctxt, block_dev, legacy=False)
+ uuid = block_dev['instance_uuid']
bdms = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid)
@@ -3602,81 +4040,90 @@ class BlockDeviceMappingTestCase(test.TestCase):
def test_block_device_mapping_update(self):
bdm = self._create_bdm({})
db.block_device_mapping_update(self.ctxt, bdm['id'],
- {'virtual_name': 'some_virt_name'})
+ {'destination_type': 'moon'},
+ legacy=False)
uuid = bdm['instance_uuid']
bdm_real = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid)
- self.assertEqual(bdm_real[0]['virtual_name'], 'some_virt_name')
+ self.assertEqual(bdm_real[0]['destination_type'], 'moon')
def test_block_device_mapping_update_or_create(self):
values = {
'instance_uuid': self.instance['uuid'],
'device_name': 'fake_name',
- 'virtual_name': 'some_virt_name'
+ 'source_type': 'volume',
+ 'destination_type': 'volume'
}
# check create
- db.block_device_mapping_update_or_create(self.ctxt, values)
+ db.block_device_mapping_update_or_create(self.ctxt, values,
+ legacy=False)
uuid = values['instance_uuid']
bdm_real = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid)
self.assertEqual(len(bdm_real), 1)
self.assertEqual(bdm_real[0]['device_name'], 'fake_name')
# check update
- values['virtual_name'] = 'virtual_name'
- db.block_device_mapping_update_or_create(self.ctxt, values)
+ values['destination_type'] = 'camelot'
+ db.block_device_mapping_update_or_create(self.ctxt, values,
+ legacy=False)
bdm_real = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid)
self.assertEqual(len(bdm_real), 1)
bdm_real = bdm_real[0]
self.assertEqual(bdm_real['device_name'], 'fake_name')
- self.assertEqual(bdm_real['virtual_name'], 'virtual_name')
+ self.assertEqual(bdm_real['destination_type'], 'camelot')
def test_block_device_mapping_update_or_create_check_remove_virt(self):
uuid = self.instance['uuid']
values = {
'instance_uuid': uuid,
- 'virtual_name': 'ephemeral12'
+ 'source_type': 'blank',
+ 'guest_format': 'swap',
}
- # check that old bdm with same virtual_names are deleted on create
+ # check that old swap bdms are deleted on create
val1 = dict(values)
val1['device_name'] = 'device1'
- db.block_device_mapping_create(self.ctxt, val1)
+ db.block_device_mapping_create(self.ctxt, val1, legacy=False)
val2 = dict(values)
val2['device_name'] = 'device2'
- db.block_device_mapping_update_or_create(self.ctxt, val2)
+ db.block_device_mapping_update_or_create(self.ctxt, val2, legacy=False)
bdm_real = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid)
self.assertEqual(len(bdm_real), 1)
bdm_real = bdm_real[0]
self.assertEqual(bdm_real['device_name'], 'device2')
- self.assertEqual(bdm_real['virtual_name'], 'ephemeral12')
+ self.assertEqual(bdm_real['source_type'], 'blank')
+ self.assertEqual(bdm_real['guest_format'], 'swap')
+ db.block_device_mapping_destroy(self.ctxt, bdm_real['id'])
- # check that old bdm with same virtual_names are deleted on update
+ # check that old ephemerals are deleted no matter what
val3 = dict(values)
val3['device_name'] = 'device3'
- val3['virtual_name'] = 'some_name'
- db.block_device_mapping_create(self.ctxt, val3)
+ val3['guest_format'] = None
+ val4 = dict(values)
+ val4['device_name'] = 'device4'
+ val4['guest_format'] = None
+ db.block_device_mapping_create(self.ctxt, val3, legacy=False)
+ db.block_device_mapping_create(self.ctxt, val4, legacy=False)
bdm_real = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid)
self.assertEqual(len(bdm_real), 2)
- val3['virtual_name'] = 'ephemeral12'
- db.block_device_mapping_update_or_create(self.ctxt, val3)
+ val5 = dict(values)
+ val5['device_name'] = 'device5'
+ val5['guest_format'] = None
+ db.block_device_mapping_update_or_create(self.ctxt, val5, legacy=False)
bdm_real = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid)
self.assertEqual(len(bdm_real), 1)
bdm_real = bdm_real[0]
- self.assertEqual(bdm_real['device_name'], 'device3')
- self.assertEqual(bdm_real['virtual_name'], 'ephemeral12')
+ self.assertEqual(bdm_real['device_name'], 'device5')
def test_block_device_mapping_get_all_by_instance(self):
uuid1 = self.instance['uuid']
uuid2 = db.instance_create(self.ctxt, {})['uuid']
bmds_values = [{'instance_uuid': uuid1,
- 'virtual_name': 'virtual_name',
'device_name': 'first'},
{'instance_uuid': uuid2,
- 'virtual_name': 'virtual_name1',
'device_name': 'second'},
{'instance_uuid': uuid2,
- 'virtual_name': 'virtual_name2',
'device_name': 'third'}]
for bdm in bmds_values:
@@ -3684,7 +4131,6 @@ class BlockDeviceMappingTestCase(test.TestCase):
bmd = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid1)
self.assertEqual(len(bmd), 1)
- self.assertEqual(bmd[0]['virtual_name'], 'virtual_name')
self.assertEqual(bmd[0]['device_name'], 'first')
bmd = db.block_device_mapping_get_all_by_instance(self.ctxt, uuid2)
@@ -3724,6 +4170,53 @@ class BlockDeviceMappingTestCase(test.TestCase):
self.assertEqual(bdms[0]['device_name'], 'fake2')
+class AgentBuildTestCase(test.TestCase, ModelsObjectComparatorMixin):
+
+ """Tests for db.api.agent_build_* methods."""
+
+ def setUp(self):
+ super(AgentBuildTestCase, self).setUp()
+ self.ctxt = context.get_admin_context()
+
+ def test_agent_build_create_and_get_all(self):
+ self.assertEqual(0, len(db.agent_build_get_all(self.ctxt)))
+ agent_build = db.agent_build_create(self.ctxt, {'os': 'GNU/HURD'})
+ all_agent_builds = db.agent_build_get_all(self.ctxt)
+ self.assertEqual(1, len(all_agent_builds))
+ self._assertEqualObjects(agent_build, all_agent_builds[0])
+
+ def test_agent_build_get_by_triple(self):
+ agent_build = db.agent_build_create(self.ctxt, {'hypervisor': 'kvm',
+ 'os': 'FreeBSD', 'architecture': 'x86_64'})
+ self.assertIsNone(db.agent_build_get_by_triple(self.ctxt, 'kvm',
+ 'FreeBSD', 'i386'))
+ self._assertEqualObjects(agent_build, db.agent_build_get_by_triple(
+ self.ctxt, 'kvm', 'FreeBSD', 'x86_64'))
+
+ def test_agent_build_destroy(self):
+ agent_build = db.agent_build_create(self.ctxt, {})
+ self.assertEqual(1, len(db.agent_build_get_all(self.ctxt)))
+ db.agent_build_destroy(self.ctxt, agent_build.id)
+ self.assertEqual(0, len(db.agent_build_get_all(self.ctxt)))
+
+ def test_agent_build_update(self):
+ agent_build = db.agent_build_create(self.ctxt, {'os': 'HaikuOS'})
+ db.agent_build_update(self.ctxt, agent_build.id, {'os': 'ReactOS'})
+ self.assertEqual('ReactOS', db.agent_build_get_all(self.ctxt)[0].os)
+
+ def test_agent_build_destroy_destroyed(self):
+ agent_build = db.agent_build_create(self.ctxt, {})
+ db.agent_build_destroy(self.ctxt, agent_build.id)
+ self.assertRaises(exception.AgentBuildNotFound,
+ db.agent_build_destroy, self.ctxt, agent_build.id)
+
+ def test_agent_build_update_destroyed(self):
+ agent_build = db.agent_build_create(self.ctxt, {'os': 'HaikuOS'})
+ db.agent_build_destroy(self.ctxt, agent_build.id)
+ self.assertRaises(exception.AgentBuildNotFound,
+ db.agent_build_update, self.ctxt, agent_build.id, {'os': 'OS/2'})
+
+
class VirtualInterfaceTestCase(test.TestCase, ModelsObjectComparatorMixin):
def setUp(self):
super(VirtualInterfaceTestCase, self).setUp()
@@ -3740,6 +4233,13 @@ class VirtualInterfaceTestCase(test.TestCase, ModelsObjectComparatorMixin):
'uuid': str(stdlib_uuid.uuid4())
}
+ def mock_db_query_first_to_raise_data_error_exception(self):
+ self.mox.StubOutWithMock(query.Query, 'first')
+ query.Query.first().AndRaise(exc.DataError(mox.IgnoreArg(),
+ mox.IgnoreArg(),
+ mox.IgnoreArg()))
+ self.mox.ReplayAll()
+
def _create_virt_interface(self, values):
v = self._get_base_values()
v.update(values)
@@ -3776,9 +4276,20 @@ class VirtualInterfaceTestCase(test.TestCase, ModelsObjectComparatorMixin):
vif['address'])
self._assertEqualObjects(vif, real_vif)
+ def test_virtual_interface_get_by_address_not_found(self):
+ self.assertIsNone(db.virtual_interface_get_by_address(self.ctxt,
+ "i.nv.ali.ip"))
+
+ def test_virtual_interface_get_by_address_data_error_exception(self):
+ self.mock_db_query_first_to_raise_data_error_exception()
+ self.assertRaises(exception.InvalidIpAddressError,
+ db.virtual_interface_get_by_address,
+ self.ctxt,
+ "i.nv.ali.ip")
+
def test_virtual_interface_get_by_uuid(self):
- vifs = [self._create_virt_interface({}),
- self._create_virt_interface({})]
+ vifs = [self._create_virt_interface({"address": "address_1"}),
+ self._create_virt_interface({"address": "address_2"})]
for vif in vifs:
real_vif = db.virtual_interface_get_by_uuid(self.ctxt, vif['uuid'])
self._assertEqualObjects(vif, real_vif)
@@ -3947,6 +4458,109 @@ class KeyPairTestCase(test.TestCase, ModelsObjectComparatorMixin):
param['user_id'], param['name'])
+class QuotaTestCase(test.TestCase, ModelsObjectComparatorMixin):
+
+ """Tests for db.api.quota_* methods."""
+
+ def setUp(self):
+ super(QuotaTestCase, self).setUp()
+ self.ctxt = context.get_admin_context()
+
+ def test_quota_create(self):
+ quota = db.quota_create(self.ctxt, 'project1', 'resource', 99)
+ self.assertEqual(quota.resource, 'resource')
+ self.assertEqual(quota.hard_limit, 99)
+ self.assertEqual(quota.project_id, 'project1')
+
+ def test_quota_get(self):
+ quota = db.quota_create(self.ctxt, 'project1', 'resource', 99)
+ quota_db = db.quota_get(self.ctxt, 'project1', 'resource')
+ self._assertEqualObjects(quota, quota_db)
+
+ def test_quota_get_all_by_project(self):
+ for i in range(3):
+ for j in range(3):
+ db.quota_create(self.ctxt, 'proj%d' % i, 'resource%d' % j, j)
+ for i in range(3):
+ quotas_db = db.quota_get_all_by_project(self.ctxt, 'proj%d' % i)
+ self.assertEqual(quotas_db, {'project_id': 'proj%d' % i,
+ 'resource0': 0,
+ 'resource1': 1,
+ 'resource2': 2})
+
+ def test_quota_update(self):
+ db.quota_create(self.ctxt, 'project1', 'resource1', 41)
+ db.quota_update(self.ctxt, 'project1', 'resource1', 42)
+ quota = db.quota_get(self.ctxt, 'project1', 'resource1')
+ self.assertEqual(quota.hard_limit, 42)
+ self.assertEqual(quota.resource, 'resource1')
+ self.assertEqual(quota.project_id, 'project1')
+
+ def test_quota_update_nonexistent(self):
+ self.assertRaises(exception.ProjectQuotaNotFound,
+ db.quota_update, self.ctxt, 'project1', 'resource1', 42)
+
+ def test_quota_get_nonexistent(self):
+ self.assertRaises(exception.ProjectQuotaNotFound,
+ db.quota_get, self.ctxt, 'project1', 'resource1')
+
+ def test_quota_reserve(self):
+ reservations = _quota_reserve(self.ctxt, 'project1')
+ self.assertEqual(len(reservations), 3)
+ res_names = ['res0', 'res1', 'res2']
+ for uuid in reservations:
+ reservation = db.reservation_get(self.ctxt, uuid)
+ self.assertTrue(reservation.resource in res_names)
+ res_names.remove(reservation.resource)
+
+ def test_quota_destroy_all_by_project(self):
+ reservations = _quota_reserve(self.ctxt, 'project1')
+ db.quota_destroy_all_by_project(self.ctxt, 'project1')
+ self.assertEqual(db.quota_get_all_by_project(self.ctxt, 'project1'),
+ {'project_id': 'project1'})
+ self.assertEqual(db.quota_usage_get_all_by_project(
+ self.ctxt, 'project1'),
+ {'project_id': 'project1'})
+ for r in reservations:
+ self.assertRaises(exception.ReservationNotFound,
+ db.reservation_get, self.ctxt, r)
+
+ def test_quota_usage_get_nonexistent(self):
+ self.assertRaises(exception.QuotaUsageNotFound, db.quota_usage_get,
+ self.ctxt, 'p1', 'nonexitent_resource')
+
+ def test_quota_usage_get(self):
+ reservations = _quota_reserve(self.ctxt, 'p1')
+ quota_usage = db.quota_usage_get(self.ctxt, 'p1', 'res0')
+ expected = {'resource': 'res0', 'project_id': 'p1',
+ 'in_use': 0, 'reserved': 0, 'total': 0}
+ for key, value in expected.iteritems():
+ self.assertEqual(value, quota_usage[key])
+
+ def test_quota_usage_get_all_by_project(self):
+ reservations = _quota_reserve(self.ctxt, 'p1')
+ expected = {'project_id': 'p1',
+ 'res0': {'in_use': 0, 'reserved': 0},
+ 'res1': {'in_use': 1, 'reserved': 1},
+ 'res2': {'in_use': 2, 'reserved': 2}}
+ self.assertEqual(expected, db.quota_usage_get_all_by_project(
+ self.ctxt, 'p1'))
+
+ def test_quota_usage_update_nonexistent(self):
+ self.assertRaises(exception.QuotaUsageNotFound, db.quota_usage_update,
+ self.ctxt, 'p1', 'resource', in_use=42)
+
+ def test_quota_usage_update(self):
+ reservations = _quota_reserve(self.ctxt, 'p1')
+ until_refresh = datetime.datetime.now() + datetime.timedelta(days=1)
+ db.quota_usage_update(self.ctxt, 'p1', 'res0', in_use=42, reserved=43)
+ quota_usage = db.quota_usage_get(self.ctxt, 'p1', 'res0')
+ expected = {'resource': 'res0', 'project_id': 'p1',
+ 'in_use': 42, 'reserved': 43, 'total': 85}
+ for key, value in expected.iteritems():
+ self.assertEqual(value, quota_usage[key])
+
+
class QuotaClassTestCase(test.TestCase, ModelsObjectComparatorMixin):
def setUp(self):
@@ -3968,6 +4582,76 @@ class QuotaClassTestCase(test.TestCase, ModelsObjectComparatorMixin):
test_resource2=20,
test_resource3=30))
+ def test_quota_class_create(self):
+ qc = db.quota_class_create(self.ctxt, 'class name', 'resource', 42)
+ self.assertEqual(qc.class_name, 'class name')
+ self.assertEqual(qc.resource, 'resource')
+ self.assertEqual(qc.hard_limit, 42)
+
+ def test_quota_class_get(self):
+ qc = db.quota_class_create(self.ctxt, 'class name', 'resource', 42)
+ qc_db = db.quota_class_get(self.ctxt, 'class name', 'resource')
+ self._assertEqualObjects(qc, qc_db)
+
+ def test_quota_class_get_nonexistent(self):
+ self.assertRaises(exception.QuotaClassNotFound, db.quota_class_get,
+ self.ctxt, 'nonexistent', 'resource')
+
+ def test_quota_class_get_all_by_name(self):
+ for i in range(3):
+ for j in range(3):
+ db.quota_class_create(self.ctxt, 'class%d' % i,
+ 'resource%d' % j, j)
+ for i in range(3):
+ classes = db.quota_class_get_all_by_name(self.ctxt, 'class%d' % i)
+ self.assertEqual(classes, {'class_name': 'class%d' % i,
+ 'resource0': 0, 'resource1': 1, 'resource2': 2})
+
+ def test_quota_class_update(self):
+ qc = db.quota_class_create(self.ctxt, 'class name', 'resource', 42)
+ db.quota_class_update(self.ctxt, 'class name', 'resource', 43)
+ self.assertEqual(db.quota_class_get(self.ctxt, 'class name',
+ 'resource').hard_limit, 43)
+
+ def test_quota_class_update_nonexistent(self):
+ self.assertRaises(exception.QuotaClassNotFound, db.quota_class_update,
+ self.ctxt, 'class name', 'resource', 42)
+
+
+class S3ImageTestCase(test.TestCase):
+
+ def setUp(self):
+ super(S3ImageTestCase, self).setUp()
+ self.ctxt = context.get_admin_context()
+ self.values = [uuidutils.generate_uuid() for i in xrange(3)]
+ self.images = [db.s3_image_create(self.ctxt, uuid)
+ for uuid in self.values]
+
+ def test_s3_image_create(self):
+ for ref in self.images:
+ self.assertTrue(uuidutils.is_uuid_like(ref.uuid))
+ self.assertEqual(sorted(self.values),
+ sorted([ref.uuid for ref in self.images]))
+
+ def test_s3_image_get_by_uuid(self):
+ for uuid in self.values:
+ ref = db.s3_image_get_by_uuid(self.ctxt, uuid)
+ self.assertTrue(uuidutils.is_uuid_like(ref.uuid))
+ self.assertEqual(uuid, ref.uuid)
+
+ def test_s3_image_get(self):
+ self.assertEqual(sorted(self.values),
+ sorted([db.s3_image_get(self.ctxt, ref.id).uuid
+ for ref in self.images]))
+
+ def test_s3_image_get_not_found(self):
+ self.assertRaises(exception.ImageNotFound, db.s3_image_get, self.ctxt,
+ 100500)
+
+ def test_s3_image_get_by_uuid_not_found(self):
+ self.assertRaises(exception.ImageNotFound, db.s3_image_get_by_uuid,
+ self.ctxt, uuidutils.generate_uuid())
+
class ArchiveTestCase(test.TestCase):
@@ -3993,7 +4677,7 @@ class ArchiveTestCase(test.TestCase):
self.shadow_instances = db_utils.get_table(self.engine,
"shadow_instances")
self.uuidstrs = []
- for unused in xrange(6):
+ for unused in range(6):
self.uuidstrs.append(stdlib_uuid.uuid4().hex)
self.ids = []
self.id_tablenames_to_cleanup = set(["console_pools", "consoles"])
@@ -4019,6 +4703,16 @@ class ArchiveTestCase(test.TestCase):
del_statement = table.delete(table.c.domain.in_(self.uuidstrs))
self.conn.execute(del_statement)
+ def test_shadow_tables(self):
+ metadata = MetaData(bind=self.engine)
+ metadata.reflect()
+ for table_name in metadata.tables:
+ if table_name.startswith("shadow_"):
+ self.assertIn(table_name[7:], metadata.tables)
+ continue
+ self.assertTrue(db_utils.check_shadow_table(self.engine,
+ table_name))
+
def test_archive_deleted_rows(self):
# Add 6 rows to table
for uuidstr in self.uuidstrs:
@@ -4256,3 +4950,367 @@ class ArchiveTestCase(test.TestCase):
siim_rows = self.conn.execute(qsiim).fetchall()
si_rows = self.conn.execute(qsi).fetchall()
self.assertEqual(len(siim_rows) + len(si_rows), 8)
+
+
+class InstanceGroupDBApiTestCase(test.TestCase, ModelsObjectComparatorMixin):
+ def setUp(self):
+ super(InstanceGroupDBApiTestCase, self).setUp()
+ self.user_id = 'fake_user'
+ self.project_id = 'fake_project'
+ self.context = context.RequestContext(self.user_id, self.project_id)
+
+ def _get_default_values(self):
+ return {'name': 'fake_name',
+ 'user_id': self.user_id,
+ 'project_id': self.project_id}
+
+ def _create_instance_group(self, context, values, policies=None,
+ metadata=None, members=None):
+ return db.instance_group_create(context, values, policies=policies,
+ metadata=metadata, members=members)
+
+ def test_instance_group_create_no_key(self):
+ values = self._get_default_values()
+ result = self._create_instance_group(self.context, values)
+ ignored_keys = ['id', 'uuid', 'deleted', 'deleted_at', 'updated_at',
+ 'created_at']
+ self._assertEqualObjects(result, values, ignored_keys)
+ self.assertTrue(uuidutils.is_uuid_like(result['uuid']))
+
+ def test_instance_group_create_with_key(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ ignored_keys = ['id', 'deleted', 'deleted_at', 'updated_at',
+ 'created_at']
+ self._assertEqualObjects(result, values, ignored_keys)
+
+ def test_instance_group_create_with_same_key(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ self.assertRaises(exception.InstanceGroupIdExists,
+ self._create_instance_group, self.context, values)
+
+ def test_instance_group_get(self):
+ values = self._get_default_values()
+ result1 = self._create_instance_group(self.context, values)
+ result2 = db.instance_group_get(self.context, result1['uuid'])
+ self._assertEqualObjects(result1, result2)
+
+ def test_instance_group_update_simple(self):
+ values = self._get_default_values()
+ result1 = self._create_instance_group(self.context, values)
+ values = {'name': 'new_name', 'user_id': 'new_user',
+ 'project_id': 'new_project'}
+ db.instance_group_update(self.context, result1['uuid'],
+ values)
+ result2 = db.instance_group_get(self.context, result1['uuid'])
+ self.assertEquals(result1['uuid'], result2['uuid'])
+ ignored_keys = ['id', 'uuid', 'deleted', 'deleted_at', 'updated_at',
+ 'created_at']
+ self._assertEqualObjects(result2, values, ignored_keys)
+
+ def test_instance_group_delete(self):
+ values = self._get_default_values()
+ result = self._create_instance_group(self.context, values)
+ db.instance_group_delete(self.context, result['uuid'])
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_get, self.context, result['uuid'])
+
+ def test_instance_group_get_all(self):
+ groups = db.instance_group_get_all(self.context)
+ self.assertEquals(0, len(groups))
+ value = self._get_default_values()
+ result1 = self._create_instance_group(self.context, value)
+ groups = db.instance_group_get_all(self.context)
+ self.assertEquals(1, len(groups))
+ value = self._get_default_values()
+ result2 = self._create_instance_group(self.context, value)
+ groups = db.instance_group_get_all(self.context)
+ results = [result1, result2]
+ self._assertEqualListsOfObjects(results, groups)
+
+ def test_instance_group_get_all_by_project_id(self):
+ groups = db.instance_group_get_all_by_project_id(self.context,
+ 'invalid_project_id')
+ self.assertEquals(0, len(groups))
+ values = self._get_default_values()
+ result1 = self._create_instance_group(self.context, values)
+ groups = db.instance_group_get_all_by_project_id(self.context,
+ 'fake_project')
+ self.assertEquals(1, len(groups))
+ values = self._get_default_values()
+ values['project_id'] = 'new_project_id'
+ result2 = self._create_instance_group(self.context, values)
+ groups = db.instance_group_get_all(self.context)
+ results = [result1, result2]
+ self._assertEqualListsOfObjects(results, groups)
+ projects = [{'name': 'fake_project', 'value': [result1]},
+ {'name': 'new_project_id', 'value': [result2]}]
+ for project in projects:
+ groups = db.instance_group_get_all_by_project_id(self.context,
+ project['name'])
+ self._assertEqualListsOfObjects(project['value'], groups)
+
+ def test_instance_group_update(self):
+ values = self._get_default_values()
+ result = self._create_instance_group(self.context, values)
+ ignored_keys = ['id', 'uuid', 'deleted', 'deleted_at', 'updated_at',
+ 'created_at']
+ self._assertEqualObjects(result, values, ignored_keys)
+ self.assertTrue(uuidutils.is_uuid_like(result['uuid']))
+ id = result['uuid']
+ values = self._get_default_values()
+ values['name'] = 'new_fake_name'
+ db.instance_group_update(self.context, id, values)
+ result = db.instance_group_get(self.context, id)
+ self.assertEquals(result['name'], 'new_fake_name')
+ # update metadata
+ values = self._get_default_values()
+ metadataInput = {'key11': 'value1',
+ 'key12': 'value2'}
+ values['metadata'] = metadataInput
+ db.instance_group_update(self.context, id, values)
+ result = db.instance_group_get(self.context, id)
+ metadata = result['metadetails']
+ self._assertEqualObjects(metadata, metadataInput)
+ # update update members
+ values = self._get_default_values()
+ members = ['instance_id1', 'instance_id2']
+ values['members'] = members
+ db.instance_group_update(self.context, id, values)
+ result = db.instance_group_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(result['members'], members)
+ # update update policies
+ values = self._get_default_values()
+ policies = ['policy1', 'policy2']
+ values['policies'] = policies
+ db.instance_group_update(self.context, id, values)
+ result = db.instance_group_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(result['policies'], policies)
+ # test invalid ID
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_update, self.context,
+ 'invalid_id', values)
+
+
+class InstanceGroupMetadataDBApiTestCase(InstanceGroupDBApiTestCase):
+ def test_instance_group_metadata_on_create(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ metadata = {'key11': 'value1',
+ 'key12': 'value2'}
+ result = self._create_instance_group(self.context, values,
+ metadata=metadata)
+ ignored_keys = ['id', 'deleted', 'deleted_at', 'updated_at',
+ 'created_at']
+ self._assertEqualObjects(result, values, ignored_keys)
+ self._assertEqualObjects(metadata, result['metadetails'])
+
+ def test_instance_group_metadata_add(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ metadata = db.instance_group_metadata_get(self.context, id)
+ self._assertEqualObjects(metadata, {})
+ metadata = {'key1': 'value1',
+ 'key2': 'value2'}
+ db.instance_group_metadata_add(self.context, id, metadata)
+ metadata2 = db.instance_group_metadata_get(self.context, id)
+ self._assertEqualObjects(metadata, metadata2)
+
+ def test_instance_group_update(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ metadata = {'key1': 'value1',
+ 'key2': 'value2'}
+ db.instance_group_metadata_add(self.context, id, metadata)
+ metadata2 = db.instance_group_metadata_get(self.context, id)
+ self._assertEqualObjects(metadata, metadata2)
+ # check add with existing keys
+ metadata = {'key1': 'value1',
+ 'key2': 'value2',
+ 'key3': 'value3'}
+ db.instance_group_metadata_add(self.context, id, metadata)
+ metadata3 = db.instance_group_metadata_get(self.context, id)
+ self._assertEqualObjects(metadata, metadata3)
+
+ def test_instance_group_delete(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ metadata = {'key1': 'value1',
+ 'key2': 'value2',
+ 'key3': 'value3'}
+ db.instance_group_metadata_add(self.context, id, metadata)
+ metadata3 = db.instance_group_metadata_get(self.context, id)
+ self._assertEqualObjects(metadata, metadata3)
+ db.instance_group_metadata_delete(self.context, id, 'key1')
+ metadata = db.instance_group_metadata_get(self.context, id)
+ self.assertTrue('key1' not in metadata)
+ db.instance_group_metadata_delete(self.context, id, 'key2')
+ metadata = db.instance_group_metadata_get(self.context, id)
+ self.assertTrue('key2' not in metadata)
+
+ def test_instance_group_metadata_invalid_ids(self):
+ values = self._get_default_values()
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_metadata_get,
+ self.context, 'invalid')
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_metadata_delete, self.context,
+ 'invalidid', 'key1')
+ metadata = {'key1': 'value1',
+ 'key2': 'value2'}
+ db.instance_group_metadata_add(self.context, id, metadata)
+ self.assertRaises(exception.InstanceGroupMetadataNotFound,
+ db.instance_group_metadata_delete,
+ self.context, id, 'invalidkey')
+
+
+class InstanceGroupMembersDBApiTestCase(InstanceGroupDBApiTestCase):
+ def test_instance_group_members_on_create(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ members = ['instance_id1', 'instance_id2']
+ result = self._create_instance_group(self.context, values,
+ members=members)
+ ignored_keys = ['id', 'deleted', 'deleted_at', 'updated_at',
+ 'created_at']
+ self._assertEqualObjects(result, values, ignored_keys)
+ self._assertEqualListsOfPrimitivesAsSets(result['members'], members)
+
+ def test_instance_group_members_add(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ members = db.instance_group_members_get(self.context, id)
+ self.assertEquals(members, [])
+ members2 = ['instance_id1', 'instance_id2']
+ db.instance_group_members_add(self.context, id, members2)
+ members = db.instance_group_members_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(members, members2)
+
+ def test_instance_group_members_update(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ members2 = ['instance_id1', 'instance_id2']
+ db.instance_group_members_add(self.context, id, members2)
+ members = db.instance_group_members_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(members, members2)
+ # check add with existing keys
+ members3 = ['instance_id1', 'instance_id2', 'instance_id3']
+ db.instance_group_members_add(self.context, id, members3)
+ members = db.instance_group_members_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(members, members3)
+
+ def test_instance_group_members_delete(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ members3 = ['instance_id1', 'instance_id2', 'instance_id3']
+ db.instance_group_members_add(self.context, id, members3)
+ members = db.instance_group_members_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(members, members3)
+ for instance_id in members3[:]:
+ db.instance_group_member_delete(self.context, id, instance_id)
+ members3.remove(instance_id)
+ members = db.instance_group_members_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(members, members3)
+
+ def test_instance_group_members_invalid_ids(self):
+ values = self._get_default_values()
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_members_get,
+ self.context, 'invalid')
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_member_delete, self.context,
+ 'invalidid', 'instance_id1')
+ members = ['instance_id1', 'instance_id2']
+ db.instance_group_members_add(self.context, id, members)
+ self.assertRaises(exception.InstanceGroupMemberNotFound,
+ db.instance_group_member_delete,
+ self.context, id, 'invalid_id')
+
+
+class InstanceGroupPoliciesDBApiTestCase(InstanceGroupDBApiTestCase):
+ def test_instance_group_policies_on_create(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ policies = ['policy1', 'policy2']
+ result = self._create_instance_group(self.context, values,
+ policies=policies)
+ ignored_keys = ['id', 'deleted', 'deleted_at', 'updated_at',
+ 'created_at']
+ self._assertEqualObjects(result, values, ignored_keys)
+ self._assertEqualListsOfPrimitivesAsSets(result['policies'], policies)
+
+ def test_instance_group_policies_add(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ policies = db.instance_group_policies_get(self.context, id)
+ self.assertEquals(policies, [])
+ policies2 = ['policy1', 'policy2']
+ db.instance_group_policies_add(self.context, id, policies2)
+ policies = db.instance_group_policies_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(policies, policies2)
+
+ def test_instance_group_policies_update(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ policies2 = ['policy1', 'policy2']
+ db.instance_group_policies_add(self.context, id, policies2)
+ policies = db.instance_group_policies_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(policies, policies2)
+ policies3 = ['policy1', 'policy2', 'policy3']
+ db.instance_group_policies_add(self.context, id, policies3)
+ policies = db.instance_group_policies_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(policies, policies3)
+
+ def test_instance_group_policies_delete(self):
+ values = self._get_default_values()
+ values['uuid'] = 'fake_id'
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ policies3 = ['policy1', 'policy2', 'policy3']
+ db.instance_group_policies_add(self.context, id, policies3)
+ policies = db.instance_group_policies_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(policies, policies3)
+ for policy in policies3[:]:
+ db.instance_group_policy_delete(self.context, id, policy)
+ policies3.remove(policy)
+ policies = db.instance_group_policies_get(self.context, id)
+ self._assertEqualListsOfPrimitivesAsSets(policies, policies3)
+
+ def test_instance_group_policies_invalid_ids(self):
+ values = self._get_default_values()
+ result = self._create_instance_group(self.context, values)
+ id = result['uuid']
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_policies_get,
+ self.context, 'invalid')
+ self.assertRaises(exception.InstanceGroupNotFound,
+ db.instance_group_policy_delete, self.context,
+ 'invalidid', 'policy1')
+ policies = ['policy1', 'policy2']
+ db.instance_group_policies_add(self.context, id, policies)
+ self.assertRaises(exception.InstanceGroupPolicyNotFound,
+ db.instance_group_policy_delete,
+ self.context, id, 'invalid_policy')
diff --git a/nova/tests/test_migration_utils.py b/nova/tests/db/test_migration_utils.py
index d6e1ee568..3674a7c45 100644
--- a/nova/tests/test_migration_utils.py
+++ b/nova/tests/db/test_migration_utils.py
@@ -14,21 +14,22 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+import warnings
from migrate.changeset import UniqueConstraint
-from sqlalchemy import Integer, DateTime, String
+from sqlalchemy.dialects import mysql
+from sqlalchemy import Boolean, Index, Integer, DateTime, String
from sqlalchemy import MetaData, Table, Column
+from sqlalchemy.engine import reflection
from sqlalchemy.exc import NoSuchTableError
-from sqlalchemy.exc import OperationalError
from sqlalchemy.exc import SAWarning
from sqlalchemy.sql import select
-from sqlalchemy.types import UserDefinedType
+from sqlalchemy.types import UserDefinedType, NullType
from nova.db.sqlalchemy import api as db
from nova.db.sqlalchemy import utils
from nova import exception
-from nova.tests import test_migrations
-import warnings
+from nova.tests.db import test_migrations
class CustomType(UserDefinedType):
@@ -92,54 +93,51 @@ class TestMigrationUtils(test_migrations.BaseMigrationTestCase):
{'id': 3, 'a': 1, 'foo': 30}
]
- for key, engine in self.engines.items():
- meta = MetaData()
- meta.bind = engine
- test_table = Table(table_name, meta,
- Column('id', Integer, primary_key=True,
- nullable=False),
- Column('a', Integer),
- Column('foo', CustomType, default=0),
- UniqueConstraint('a', name='uniq_a'),
- UniqueConstraint('foo', name=uc_name))
- test_table.create()
+ engine = self.engines['sqlite']
+ meta = MetaData(bind=engine)
- engine.execute(test_table.insert(), values)
- if key == "sqlite":
- warnings.simplefilter("ignore", SAWarning)
- # NOTE(boris-42): Missing info about column `foo` that has
- # unsupported type CustomType.
- self.assertRaises(exception.NovaException,
- utils.drop_unique_constraint,
- engine, table_name, uc_name, 'foo')
-
- # NOTE(boris-42): Wrong type of foo instance. it should be
- # instance of sqlalchemy.Column.
- self.assertRaises(exception.NovaException,
- utils.drop_unique_constraint,
- engine, table_name, uc_name, 'foo',
- foo=Integer())
-
- foo = Column('foo', CustomType, default=0)
- utils.drop_unique_constraint(engine, table_name, uc_name, 'foo',
- foo=foo)
-
- s = test_table.select().order_by(test_table.c.id)
- rows = engine.execute(s).fetchall()
-
- for i in xrange(0, len(values)):
- v = values[i]
- self.assertEqual((v['id'], v['a'], v['foo']), rows[i])
+ test_table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True,
+ nullable=False),
+ Column('a', Integer),
+ Column('foo', CustomType, default=0),
+ UniqueConstraint('a', name='uniq_a'),
+ UniqueConstraint('foo', name=uc_name))
+ test_table.create()
- # NOTE(boris-42): Update data about Table from DB.
- meta = MetaData()
- meta.bind = engine
- test_table = Table(table_name, meta, autoload=True)
- constraints = filter(lambda c: c.name == uc_name,
- test_table.constraints)
- self.assertEqual(len(constraints), 0)
- self.assertEqual(len(test_table.constraints), 1)
- test_table.drop()
+ engine.execute(test_table.insert(), values)
+ warnings.simplefilter("ignore", SAWarning)
+ # NOTE(boris-42): Missing info about column `foo` that has
+ # unsupported type CustomType.
+ self.assertRaises(exception.NovaException,
+ utils.drop_unique_constraint,
+ engine, table_name, uc_name, 'foo')
+
+ # NOTE(boris-42): Wrong type of foo instance. it should be
+ # instance of sqlalchemy.Column.
+ self.assertRaises(exception.NovaException,
+ utils.drop_unique_constraint,
+ engine, table_name, uc_name, 'foo', foo=Integer())
+
+ foo = Column('foo', CustomType, default=0)
+ utils.drop_unique_constraint(engine, table_name, uc_name, 'foo',
+ foo=foo)
+
+ s = test_table.select().order_by(test_table.c.id)
+ rows = engine.execute(s).fetchall()
+
+ for i in xrange(0, len(values)):
+ v = values[i]
+ self.assertEqual((v['id'], v['a'], v['foo']), rows[i])
+
+ # NOTE(boris-42): Update data about Table from DB.
+ meta = MetaData(bind=engine)
+ test_table = Table(table_name, meta, autoload=True)
+ constraints = filter(lambda c: c.name == uc_name,
+ test_table.constraints)
+ self.assertEqual(len(constraints), 0)
+ self.assertEqual(len(test_table.constraints), 1)
+ test_table.drop()
def _populate_db_for_drop_duplicate_entries(self, engine, meta,
table_name):
@@ -160,7 +158,7 @@ class TestMigrationUtils(test_migrations.BaseMigrationTestCase):
nullable=False),
Column('a', Integer),
Column('b', Integer),
- Column('c', String),
+ Column('c', String(255)),
Column('deleted', Integer, default=0),
Column('deleted_at', DateTime),
Column('updated_at', DateTime))
@@ -296,22 +294,21 @@ class TestMigrationUtils(test_migrations.BaseMigrationTestCase):
def test_check_shadow_table_with_unsupported_type(self):
table_name = 'abc'
- for key, engine in self.engines.items():
- meta = MetaData()
- meta.bind = engine
-
- table = Table(table_name, meta,
- Column('id', Integer, primary_key=True),
- Column('a', Integer),
- Column('c', CustomType))
- table.create()
-
- shadow_table = Table(db._SHADOW_TABLE_PREFIX + table_name, meta,
- Column('id', Integer, primary_key=True),
- Column('a', Integer),
- Column('c', CustomType))
- shadow_table.create()
- self.assertTrue(utils.check_shadow_table(engine, table_name))
+ engine = self.engines['sqlite']
+ meta = MetaData(bind=engine)
+
+ table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('a', Integer),
+ Column('c', CustomType))
+ table.create()
+
+ shadow_table = Table(db._SHADOW_TABLE_PREFIX + table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('a', Integer),
+ Column('c', CustomType))
+ shadow_table.create()
+ self.assertTrue(utils.check_shadow_table(engine, table_name))
def test_create_shadow_table_by_table_instance(self):
table_name = 'abc'
@@ -342,21 +339,20 @@ class TestMigrationUtils(test_migrations.BaseMigrationTestCase):
def test_create_shadow_table_not_supported_type(self):
table_name = 'abc'
- for key, engine in self.engines.items():
- meta = MetaData()
- meta.bind = engine
-
- table = Table(table_name, meta,
- Column('id', Integer, primary_key=True),
- Column('a', CustomType))
- table.create()
- self.assertRaises(exception.NovaException,
- utils.create_shadow_table,
- engine, table_name=table_name)
-
- utils.create_shadow_table(engine, table_name=table_name,
- a=Column('a', CustomType()))
- self.assertTrue(utils.check_shadow_table(engine, table_name))
+ engine = self.engines['sqlite']
+ meta = MetaData()
+ meta.bind = engine
+ table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('a', CustomType))
+ table.create()
+ self.assertRaises(exception.NovaException,
+ utils.create_shadow_table,
+ engine, table_name=table_name)
+
+ utils.create_shadow_table(engine, table_name=table_name,
+ a=Column('a', CustomType()))
+ self.assertTrue(utils.check_shadow_table(engine, table_name))
def test_create_shadow_both_table_and_table_name_are_none(self):
for key, engine in self.engines.items():
@@ -388,6 +384,133 @@ class TestMigrationUtils(test_migrations.BaseMigrationTestCase):
Column('a', Integer))
table.create()
utils.create_shadow_table(engine, table_name=table_name)
- self.assertRaises(OperationalError,
+ self.assertRaises(exception.ShadowTableExists,
utils.create_shadow_table,
engine, table_name=table_name)
+
+ def test_change_deleted_column_type_doesnt_drop_index(self):
+ table_name = 'abc'
+ for key, engine in self.engines.items():
+ meta = MetaData(bind=engine)
+
+ indexes = {
+ 'idx_a_deleted': ['a', 'deleted'],
+ 'idx_b_deleted': ['b', 'deleted'],
+ 'idx_a': ['a']
+ }
+
+ index_instances = [Index(name, *columns)
+ for name, columns in indexes.iteritems()]
+
+ table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('a', String(255)),
+ Column('b', String(255)),
+ Column('deleted', Boolean),
+ *index_instances)
+ table.create()
+ utils.change_deleted_column_type_to_id_type(engine, table_name)
+ utils.change_deleted_column_type_to_boolean(engine, table_name)
+
+ insp = reflection.Inspector.from_engine(engine)
+ real_indexes = insp.get_indexes(table_name)
+ self.assertEqual(len(real_indexes), 3)
+ for index in real_indexes:
+ name = index['name']
+ self.assertIn(name, indexes)
+ self.assertEqual(set(index['column_names']),
+ set(indexes[name]))
+
+ def test_change_deleted_column_type_to_id_type_integer(self):
+ table_name = 'abc'
+ for key, engine in self.engines.items():
+ meta = MetaData()
+ meta.bind = engine
+ table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('deleted', Boolean))
+ table.create()
+ utils.change_deleted_column_type_to_id_type(engine, table_name)
+
+ table = utils.get_table(engine, table_name)
+ self.assertTrue(isinstance(table.c.deleted.type, Integer))
+
+ def test_change_deleted_column_type_to_id_type_string(self):
+ table_name = 'abc'
+ for key, engine in self.engines.items():
+ meta = MetaData()
+ meta.bind = engine
+ table = Table(table_name, meta,
+ Column('id', String(255), primary_key=True),
+ Column('deleted', Boolean))
+ table.create()
+ utils.change_deleted_column_type_to_id_type(engine, table_name)
+
+ table = utils.get_table(engine, table_name)
+ self.assertTrue(isinstance(table.c.deleted.type, String))
+
+ def test_change_deleted_column_type_to_id_type_custom(self):
+ table_name = 'abc'
+ engine = self.engines['sqlite']
+ meta = MetaData()
+ meta.bind = engine
+ table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('foo', CustomType),
+ Column('deleted', Boolean))
+ table.create()
+
+ self.assertRaises(exception.NovaException,
+ utils.change_deleted_column_type_to_id_type,
+ engine, table_name)
+
+ fooColumn = Column('foo', CustomType())
+ utils.change_deleted_column_type_to_id_type(engine, table_name,
+ foo=fooColumn)
+
+ table = utils.get_table(engine, table_name)
+ # NOTE(boris-42): There is no way to check has foo type CustomType.
+ # but sqlalchemy will set it to NullType.
+ self.assertTrue(isinstance(table.c.foo.type, NullType))
+ self.assertTrue(isinstance(table.c.deleted.type, Integer))
+
+ def test_change_deleted_column_type_to_boolean(self):
+ table_name = 'abc'
+ for key, engine in self.engines.items():
+ meta = MetaData()
+ meta.bind = engine
+ table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('deleted', Integer))
+ table.create()
+
+ utils.change_deleted_column_type_to_boolean(engine, table_name)
+
+ table = utils.get_table(engine, table_name)
+ expected_type = Boolean if key != "mysql" else mysql.TINYINT
+ self.assertTrue(isinstance(table.c.deleted.type, expected_type))
+
+ def test_change_deleted_column_type_to_boolean_type_custom(self):
+ table_name = 'abc'
+ engine = self.engines['sqlite']
+ meta = MetaData()
+ meta.bind = engine
+ table = Table(table_name, meta,
+ Column('id', Integer, primary_key=True),
+ Column('foo', CustomType),
+ Column('deleted', Integer))
+ table.create()
+
+ self.assertRaises(exception.NovaException,
+ utils.change_deleted_column_type_to_boolean,
+ engine, table_name)
+
+ fooColumn = Column('foo', CustomType())
+ utils.change_deleted_column_type_to_boolean(engine, table_name,
+ foo=fooColumn)
+
+ table = utils.get_table(engine, table_name)
+ # NOTE(boris-42): There is no way to check has foo type CustomType.
+ # but sqlalchemy will set it to NullType.
+ self.assertTrue(isinstance(table.c.foo.type, NullType))
+ self.assertTrue(isinstance(table.c.deleted.type, Boolean))
diff --git a/nova/tests/test_migrations.conf b/nova/tests/db/test_migrations.conf
index 774f14994..774f14994 100644
--- a/nova/tests/test_migrations.conf
+++ b/nova/tests/db/test_migrations.conf
diff --git a/nova/tests/test_migrations.py b/nova/tests/db/test_migrations.py
index 688db500d..3efa8c6bc 100644
--- a/nova/tests/test_migrations.py
+++ b/nova/tests/db/test_migrations.py
@@ -45,6 +45,7 @@ import collections
import commands
import ConfigParser
import datetime
+import glob
import os
import urlparse
import uuid
@@ -61,6 +62,7 @@ import nova.db.sqlalchemy.migrate_repo
from nova.db.sqlalchemy import utils as db_utils
from nova.openstack.common import log as logging
from nova.openstack.common import timeutils
+from nova.openstack.common import uuidutils
from nova import test
from nova import utils
import nova.virt.baremetal.db.sqlalchemy.migrate_repo
@@ -219,7 +221,7 @@ class BaseMigrationTestCase(test.TestCase):
for key, value in defaults.items():
self.test_databases[key] = value
self.snake_walk = cp.getboolean('walk_style', 'snake_walk')
- except ConfigParser.ParsingError, e:
+ except ConfigParser.ParsingError as e:
self.fail("Failed to read test_migrations.conf config "
"file. Got error: %s" % e)
else:
@@ -1328,6 +1330,312 @@ class TestNovaMigrations(BaseMigrationTestCase, CommonTestsMixIn):
cell = cells.select(cells.c.id == 5).execute().first()
self.assertEqual(0, cell.deleted)
+ def _check_180(self, engine, data):
+ self.assertTrue(db_utils.check_shadow_table(engine,
+ "volume_usage_cache"))
+
+ def _check_181(self, engine, data):
+ self.assertTrue(db_utils.check_shadow_table(engine, 'cells'))
+
+ def _pre_upgrade_182(self, engine):
+ CIDR = '6666:1020:1000:2013:1000:6535:abcd:abcd'
+
+ security_group_rules = \
+ db_utils.get_table(engine, 'shadow_security_group_rules')
+ values = {
+ 'id': 182,
+ 'protocol': 'tcp',
+ 'from_port': 6666,
+ 'to_port': 9999,
+ 'cidr': CIDR,
+ 'deleted': 0
+ }
+ security_group_rules.insert().values(values).execute()
+
+ networks = db_utils.get_table(engine, 'shadow_networks')
+ values = {
+ 'id': 182,
+ 'vlan': 100500,
+ 'cidr': CIDR,
+ 'cidr_v6': CIDR,
+ 'deleted': 0
+ }
+ networks.insert().values(values).execute()
+
+ provider_fw_rules = db_utils.get_table(engine,
+ 'shadow_provider_fw_rules')
+ values = {
+ 'id': 182,
+ 'protocol': 'tcp',
+ 'from_port': 6666,
+ 'to_port': 9999,
+ 'cidr': CIDR,
+ 'deleted': 0
+ }
+ provider_fw_rules.insert().values(values).execute()
+ return {'cidr': CIDR}
+
+ def _check_182(self, engine, data):
+ self.assertTrue(db_utils.check_shadow_table(engine,
+ 'security_group_rules'))
+ self.assertTrue(db_utils.check_shadow_table(engine,
+ 'provider_fw_rules'))
+ self.assertTrue(db_utils.check_shadow_table(engine, 'networks'))
+
+ table_fields = {
+ 'shadow_security_group_rules': ['cidr'],
+ 'shadow_networks': ['cidr', 'cidr_v6'],
+ 'shadow_provider_fw_rules': ['cidr']
+ }
+
+ for table_name, fields in table_fields.iteritems():
+ table = db_utils.get_table(engine, table_name)
+ rows = table.\
+ select().\
+ where(table.c.id == 182).\
+ execute().\
+ fetchall()
+ self.assertEqual(len(rows), 1)
+ for field in fields:
+ self.assertEqual(rows[0][field], data['cidr'])
+
+ for field in fields:
+ # we should be able to store mask in cidr fields also
+ table.\
+ update().\
+ values({field: data['cidr'] + '/128'}).\
+ execute()
+
+ def _check_183(self, engine, data):
+ table_name = 'security_group_default_rules'
+ self.assertTrue(db_utils.check_shadow_table(engine, table_name))
+
+ def _check_184(self, engine, data):
+ self.assertTrue(db_utils.check_shadow_table(engine, 'instances'))
+ self.assertTrue(db_utils.check_shadow_table(engine, 'networks'))
+ self.assertTrue(db_utils.check_shadow_table(engine, 'fixed_ips'))
+ self.assertTrue(db_utils.check_shadow_table(engine, 'floating_ips'))
+ self.assertTrue(db_utils.check_shadow_table(engine, 'console_pools'))
+
+ def _unique_constraint_check_migrate_185(self, engine, check=True):
+ """Test check unique constraint behavior. It should be the same before
+ and after migration because we changed their names only."""
+
+ data_list = [
+ ("floating_ips", {'address': '10.12.14.16', 'deleted': 0}),
+ ("instance_info_caches", {'instance_uuid': 'm161-uuid1'}),
+ ('instance_type_projects', {'instance_type_id': 1,
+ 'project_id': '116', 'deleted': 0}),
+ ('instance_types', {'flavorid': "flavorid_12", 'deleted': 0,
+ 'memory_mb': 64, 'vcpus': 10, 'swap': 100}),
+ ('instance_types', {'name': "name_123", 'deleted': 0,
+ 'memory_mb': 128, 'vcpus': 11, 'swap': 300}),
+ ('key_pairs', {'user_id': 1, 'name': "name_qwer", 'deleted': 0}),
+ ('networks', {'vlan': '123', 'deleted': 0}),
+ ('task_log', {'task_name': 'task_123', 'host': 'localhost',
+ 'period_beginning': datetime.datetime(2013, 02, 11),
+ 'period_ending': datetime.datetime(2015, 01, 01),
+ 'state': 'state_1', 'message': 'msg_1'}),
+ ('virtual_interfaces', {'address': '192.168.0.0'})
+ ]
+
+ for table_name, data in data_list:
+ table = db_utils.get_table(engine, table_name)
+ if not check:
+ table.insert().values(data).execute()
+ else:
+ # we replace values for some columns because they don't
+ # belong to unique constraint
+ if table_name == "instance_types":
+ for key in ("memory_mb", "vcpus", "swap"):
+ data[key] = data[key] * 2
+ if table_name == "task_log":
+ data["message"] = 'msg_2'
+ data["state"] = 'state_2'
+
+ self.assertRaises(sqlalchemy.exc.IntegrityError,
+ table.insert().execute, data)
+
+ def _pre_upgrade_185(self, engine):
+ self._unique_constraint_check_migrate_185(engine, False)
+
+ def check_185(self, engine):
+ self._unique_constraint_check_migrate_185(engine)
+
+ def _post_downgrade_185(self, engine):
+ self._unique_constraint_check_migrate_185(engine)
+
+ def _pre_upgrade_186(self, engine):
+ fake_instances = [
+ dict(uuid='mig186_uuid-1', image_ref='fake_image_1',
+ root_device_name='/dev/vda'),
+ dict(uuid='mig186_uuid-2', image_ref='',
+ root_device_name='vda'),
+ dict(uuid='mig186_uuid-3', image_ref='fake_image_2',
+ root_device_name='/dev/vda'),
+ ]
+
+ fake_bdms = [
+ # Instance 1 - image, volume and swap
+ dict(instance_uuid='mig186_uuid-1', device_name='/dev/vdc',
+ volume_id='fake_volume_1'),
+ dict(instance_uuid='mig186_uuid-1', device_name='/dev/vdb',
+ virtual_name='swap'),
+ # Instance 2 - no image. snapshot and volume
+ dict(instance_uuid='mig186_uuid-2', device_name='/dev/vda',
+ snapshot_id='fake_snap_1', volume_id='fake_volume_2'),
+ dict(instance_uuid='mig186_uuid-2', device_name='/dev/vdc',
+ volume_id='fake_volume_3'),
+ # Instance 3 - ephemerals and swap
+ dict(instance_uuid='mig186_uuid-3', device_name='/dev/vdc',
+ virtual_name='ephemeral0'),
+ dict(instance_uuid='mig186_uuid-3', device_name='/dev/vdd',
+ virtual_name='ephemeral1'),
+ dict(instance_uuid='mig186_uuid-3', device_name='/dev/vdb',
+ virtual_name='swap'),
+ ]
+
+ instances = db_utils.get_table(engine, 'instances')
+ block_device = db_utils.get_table(engine, 'block_device_mapping')
+ engine.execute(instances.insert(), fake_instances)
+ for fake_bdm in fake_bdms:
+ engine.execute(block_device.insert(), fake_bdm)
+
+ return fake_instances, fake_bdms
+
+ def _check_186(self, engine, data):
+ block_device = db_utils.get_table(engine, 'block_device_mapping')
+
+ instance_qs = []
+
+ for instance in ('mig186_uuid-1', 'mig186_uuid-2', 'mig186_uuid-3'):
+ q = block_device.select().where(
+ block_device.c.instance_uuid == instance).order_by(
+ block_device.c.id.asc()
+ )
+ instance_qs.append(q)
+
+ bdm_1s, bdm_2s, bdm_3s = (
+ [bdm for bdm in q.execute()]
+ for q in instance_qs
+ )
+
+ # Instance 1
+ self.assertEqual(bdm_1s[0].source_type, 'volume')
+ self.assertEqual(bdm_1s[0].destination_type, 'volume')
+ self.assertEqual(bdm_1s[0].volume_id, 'fake_volume_1')
+ self.assertEqual(bdm_1s[0].device_type, 'disk')
+ self.assertEqual(bdm_1s[0].boot_index, -1)
+ self.assertEqual(bdm_1s[0].device_name, '/dev/vdc')
+
+ self.assertEqual(bdm_1s[1].source_type, 'blank')
+ self.assertEqual(bdm_1s[1].guest_format, 'swap')
+ self.assertEqual(bdm_1s[1].destination_type, 'local')
+ self.assertEqual(bdm_1s[1].device_type, 'disk')
+ self.assertEqual(bdm_1s[1].boot_index, -1)
+ self.assertEqual(bdm_1s[1].device_name, '/dev/vdb')
+
+ self.assertEqual(bdm_1s[2].source_type, 'image')
+ self.assertEqual(bdm_1s[2].destination_type, 'local')
+ self.assertEqual(bdm_1s[2].device_type, 'disk')
+ self.assertEqual(bdm_1s[2].image_id, 'fake_image_1')
+ self.assertEqual(bdm_1s[2].boot_index, 0)
+
+ # Instance 2
+ self.assertEqual(bdm_2s[0].source_type, 'snapshot')
+ self.assertEqual(bdm_2s[0].destination_type, 'volume')
+ self.assertEqual(bdm_2s[0].snapshot_id, 'fake_snap_1')
+ self.assertEqual(bdm_2s[0].volume_id, 'fake_volume_2')
+ self.assertEqual(bdm_2s[0].device_type, 'disk')
+ self.assertEqual(bdm_2s[0].boot_index, 0)
+ self.assertEqual(bdm_2s[0].device_name, '/dev/vda')
+
+ self.assertEqual(bdm_2s[1].source_type, 'volume')
+ self.assertEqual(bdm_2s[1].destination_type, 'volume')
+ self.assertEqual(bdm_2s[1].volume_id, 'fake_volume_3')
+ self.assertEqual(bdm_2s[1].device_type, 'disk')
+ self.assertEqual(bdm_2s[1].boot_index, -1)
+ self.assertEqual(bdm_2s[1].device_name, '/dev/vdc')
+
+ # Instance 3
+ self.assertEqual(bdm_3s[0].source_type, 'blank')
+ self.assertEqual(bdm_3s[0].destination_type, 'local')
+ self.assertEqual(bdm_3s[0].device_type, 'disk')
+ self.assertEqual(bdm_3s[0].boot_index, -1)
+ self.assertEqual(bdm_3s[0].device_name, '/dev/vdc')
+
+ self.assertEqual(bdm_3s[1].source_type, 'blank')
+ self.assertEqual(bdm_3s[1].destination_type, 'local')
+ self.assertEqual(bdm_3s[1].device_type, 'disk')
+ self.assertEqual(bdm_3s[1].boot_index, -1)
+ self.assertEqual(bdm_3s[1].device_name, '/dev/vdd')
+
+ self.assertEqual(bdm_3s[2].source_type, 'blank')
+ self.assertEqual(bdm_3s[2].guest_format, 'swap')
+ self.assertEqual(bdm_3s[2].destination_type, 'local')
+ self.assertEqual(bdm_3s[2].device_type, 'disk')
+ self.assertEqual(bdm_3s[2].boot_index, -1)
+ self.assertEqual(bdm_3s[2].device_name, '/dev/vdb')
+
+ self.assertEqual(bdm_3s[3].source_type, 'image')
+ self.assertEqual(bdm_3s[3].destination_type, 'local')
+ self.assertEqual(bdm_3s[3].device_type, 'disk')
+ self.assertEqual(bdm_3s[3].image_id, 'fake_image_2')
+ self.assertEqual(bdm_3s[3].boot_index, 0)
+
+ # addition of the vm instance groups
+ def _check_no_group_instance_tables(self, engine):
+ self.assertRaises(sqlalchemy.exc.NoSuchTableError,
+ db_utils.get_table, engine,
+ 'instance_groups')
+ self.assertRaises(sqlalchemy.exc.NoSuchTableError,
+ db_utils.get_table, engine,
+ 'instance_group_member')
+ self.assertRaises(sqlalchemy.exc.NoSuchTableError,
+ db_utils.get_table, engine,
+ 'instance_group_policy')
+ self.assertRaises(sqlalchemy.exc.NoSuchTableError,
+ db_utils.get_table, engine,
+ 'instance_group_metadata')
+
+ def _check_group_instance_groups(self, engine):
+ groups = db_utils.get_table(engine, 'instance_groups')
+ uuid4 = uuidutils.generate_uuid()
+ uuid5 = uuidutils.generate_uuid()
+ group_data = [
+ {'id': 4, 'deleted': 4, 'uuid': uuid4},
+ {'id': 5, 'deleted': 0, 'uuid': uuid5},
+ ]
+ engine.execute(groups.insert(), group_data)
+ group = groups.select(groups.c.id == 4).execute().first()
+ self.assertEqual(4, group.deleted)
+ group = groups.select(groups.c.id == 5).execute().first()
+ self.assertEqual(0, group.deleted)
+
+ def _pre_upgrade_187(self, engine):
+ self._check_no_group_instance_tables(engine)
+
+ def _check_187(self, engine, data):
+ self._check_group_instance_groups(engine)
+ tables = ['instance_group_policy', 'instance_group_metadata',
+ 'instance_group_member']
+ for table in tables:
+ db_utils.get_table(engine, table)
+
+ def _post_downgrade_187(self, engine):
+ # check that groups does not exist
+ self._check_no_group_instance_tables(engine)
+
+ def _check_188(self, engine, data):
+ services = db_utils.get_table(engine, 'services')
+ rows = services.select().execute().fetchall()
+ self.assertEqual(rows[0]['disabled_reason'], None)
+
+ def _post_downgrade_188(self, engine):
+ services = db_utils.get_table(engine, 'services')
+ rows = services.select().execute().fetchall()
+ self.assertFalse('disabled_reason' in rows[0])
+
class TestBaremetalMigrations(BaseMigrationTestCase, CommonTestsMixIn):
"""Test sqlalchemy-migrate migrations."""
@@ -1339,7 +1647,7 @@ class TestBaremetalMigrations(BaseMigrationTestCase, CommonTestsMixIn):
super(TestBaremetalMigrations, self).__init__(*args, **kwargs)
self.DEFAULT_CONFIG_FILE = os.path.join(os.path.dirname(__file__),
- 'virt/baremetal/test_baremetal_migrations.conf')
+ '../virt/baremetal/test_baremetal_migrations.conf')
# Test machines can set the NOVA_TEST_MIGRATIONS_CONF variable
# to override the location of the config file for migration testing
self.CONFIG_FILE_PATH = os.environ.get(
@@ -1430,3 +1738,30 @@ class TestBaremetalMigrations(BaseMigrationTestCase, CommonTestsMixIn):
bm_nodes = db_utils.get_table(engine, 'bm_nodes')
columns = [c.name for c in bm_nodes.columns]
self.assertNotIn(u'prov_mac_address', columns)
+
+
+class ProjectTestCase(test.TestCase):
+
+ def test_all_migrations_have_downgrade(self):
+ topdir = os.path.normpath(os.path.dirname(__file__) + '/../../../')
+ py_glob = os.path.join(topdir, "nova", "db", "sqlalchemy",
+ "migrate_repo", "versions", "*.py")
+
+ missing_downgrade = []
+ for path in glob.iglob(py_glob):
+ has_upgrade = False
+ has_downgrade = False
+ with open(path, "r") as f:
+ for line in f:
+ if 'def upgrade(' in line:
+ has_upgrade = True
+ if 'def downgrade(' in line:
+ has_downgrade = True
+
+ if has_upgrade and not has_downgrade:
+ fname = os.path.basename(path)
+ missing_downgrade.append(fname)
+
+ helpful_msg = (_("The following migrations are missing a downgrade:"
+ "\n\t%s") % '\n\t'.join(sorted(missing_downgrade)))
+ self.assert_(not missing_downgrade, helpful_msg)
diff --git a/nova/tests/fake_instance.py b/nova/tests/fake_instance.py
new file mode 100644
index 000000000..a8004364a
--- /dev/null
+++ b/nova/tests/fake_instance.py
@@ -0,0 +1,41 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import datetime
+import uuid
+
+from nova.objects import instance as instance_obj
+
+
+def fake_db_instance(**updates):
+ db_instance = {
+ 'id': 1,
+ 'deleted': False,
+ 'uuid': str(uuid.uuid4()),
+ 'user_id': 'fake-user',
+ 'project_id': 'fake-project',
+ 'host': 'fake-host',
+ 'created_at': datetime.datetime(1955, 11, 5),
+ }
+ for field, typefn in instance_obj.Instance.fields.items():
+ if field in db_instance:
+ continue
+ try:
+ db_instance[field] = typefn(None)
+ except TypeError:
+ db_instance[field] = typefn()
+
+ if updates:
+ db_instance.update(updates)
+ return db_instance
diff --git a/nova/tests/fake_ldap.py b/nova/tests/fake_ldap.py
index b3fab03ab..7b587ffe2 100644
--- a/nova/tests/fake_ldap.py
+++ b/nova/tests/fake_ldap.py
@@ -217,19 +217,19 @@ class FakeLDAP(object):
def simple_bind_s(self, dn, password):
"""This method is ignored, but provided for compatibility."""
if server_fail:
- raise SERVER_DOWN
+ raise SERVER_DOWN()
pass
def unbind_s(self):
"""This method is ignored, but provided for compatibility."""
if server_fail:
- raise SERVER_DOWN
+ raise SERVER_DOWN()
pass
def add_s(self, dn, attr):
"""Add an object with the specified attributes at dn."""
if server_fail:
- raise SERVER_DOWN
+ raise SERVER_DOWN()
key = "%s%s" % (self.__prefix, dn)
value_dict = dict([(k, _to_json(v)) for k, v in attr])
@@ -238,7 +238,7 @@ class FakeLDAP(object):
def delete_s(self, dn):
"""Remove the ldap object at specified dn."""
if server_fail:
- raise SERVER_DOWN
+ raise SERVER_DOWN()
Store.instance().delete("%s%s" % (self.__prefix, dn))
@@ -252,7 +252,7 @@ class FakeLDAP(object):
"""
if server_fail:
- raise SERVER_DOWN
+ raise SERVER_DOWN()
store = Store.instance()
key = "%s%s" % (self.__prefix, dn)
@@ -292,7 +292,7 @@ class FakeLDAP(object):
"""
if server_fail:
- raise SERVER_DOWN
+ raise SERVER_DOWN()
if scope != SCOPE_BASE and scope != SCOPE_SUBTREE:
raise NotImplementedError(str(scope))
diff --git a/nova/tests/fake_network.py b/nova/tests/fake_network.py
index 42ce71ded..79af362bb 100644
--- a/nova/tests/fake_network.py
+++ b/nova/tests/fake_network.py
@@ -406,8 +406,11 @@ def set_stub_network_methods(stubs):
def fake_networkinfo(*args, **kwargs):
return network_model.NetworkInfo()
+ def fake_async_networkinfo(*args, **kwargs):
+ return network_model.NetworkInfoAsyncWrapper(fake_networkinfo)
+
stubs.Set(cm, '_get_instance_nw_info', fake_networkinfo)
- stubs.Set(cm, '_allocate_network', fake_networkinfo)
+ stubs.Set(cm, '_allocate_network', fake_async_networkinfo)
stubs.Set(cm, '_deallocate_network', lambda *args, **kwargs: None)
diff --git a/nova/tests/fake_policy.py b/nova/tests/fake_policy.py
index 1290ef80b..ed8cc7424 100644
--- a/nova/tests/fake_policy.py
+++ b/nova/tests/fake_policy.py
@@ -19,6 +19,8 @@ policy_data = """
{
"admin_api": "role:admin",
+ "cells_scheduler_filter:TargetCellFilter": "is_admin:True",
+
"context_is_admin": "role:admin or role:administrator",
"compute:create": "",
"compute:create:attach_network": "",
@@ -127,6 +129,7 @@ policy_data = """
"compute_extension:extended_ips_mac": "",
"compute_extension:extended_vif_net": "",
"compute_extension:fixed_ips": "",
+ "compute_extension:v3:os-fixed-ips": "",
"compute_extension:flavor_access": "",
"compute_extension:flavor_disabled": "",
"compute_extension:flavor_rxtx": "",
@@ -152,6 +155,7 @@ policy_data = """
"compute_extension:instance_actions:events": "is_admin:True",
"compute_extension:instance_usage_audit_log": "",
"compute_extension:keypairs": "",
+ "compute_extension:v3:os-keypairs": "",
"compute_extension:multinic": "",
"compute_extension:networks": "",
"compute_extension:networks:view": "",
@@ -159,12 +163,14 @@ policy_data = """
"compute_extension:os-tenant-networks": "",
"compute_extension:quotas:show": "",
"compute_extension:quotas:update": "",
+ "compute_extension:quotas:delete": "",
"compute_extension:quota_classes": "",
"compute_extension:rescue": "",
"compute_extension:security_group_default_rules": "",
"compute_extension:security_groups": "",
"compute_extension:server_diagnostics": "",
"compute_extension:server_password": "",
+ "compute_extension:server_usage": "",
"compute_extension:services": "",
"compute_extension:simple_tenant_usage:show": "",
"compute_extension:simple_tenant_usage:list": "",
@@ -180,7 +186,7 @@ policy_data = """
"compute_extension:zones": "",
"compute_extension:availability_zone:list": "",
"compute_extension:availability_zone:detail": "is_admin:True",
-
+ "compute_extension:used_limits_for_admin": "is_admin:True",
"volume:create": "",
"volume:get": "",
diff --git a/nova/tests/fake_utils.py b/nova/tests/fake_utils.py
new file mode 100644
index 000000000..cb73bc8bb
--- /dev/null
+++ b/nova/tests/fake_utils.py
@@ -0,0 +1,28 @@
+# Copyright (c) 2013 Rackspace Hosting
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""This modules stubs out functions in nova.utils."""
+
+from nova import utils
+
+
+def stub_out_utils_spawn_n(stubs):
+ """Stubs out spawn_n with a blocking version.
+
+ This aids testing async processes by blocking until they're done.
+ """
+ def no_spawn(func, *args, **kwargs):
+ return func(*args, **kwargs)
+
+ stubs.Set(utils, 'spawn_n', no_spawn)
diff --git a/nova/tests/image/test_s3.py b/nova/tests/image/test_s3.py
index 8cdde1dc6..e02ac4c6b 100644
--- a/nova/tests/image/test_s3.py
+++ b/nova/tests/image/test_s3.py
@@ -198,12 +198,8 @@ class TestS3ImageService(test.TestCase):
'no_device': True}]
self.assertEqual(block_device_mapping, expected_bdm)
- def test_s3_create_is_public(self):
- metadata = {'properties': {
- 'image_location': 'mybucket/my.img.manifest.xml'},
- 'name': 'mybucket/my.img'}
+ def _initialize_mocks(self):
handle, tempf = tempfile.mkstemp(dir='/tmp')
-
ignore = mox.IgnoreArg()
mockobj = self.mox.CreateMockAnything()
self.stubs.Set(self.image_service, '_conn', mockobj)
@@ -225,6 +221,33 @@ class TestS3ImageService(test.TestCase):
mockobj(ignore, ignore).AndReturn(tempf)
self.mox.ReplayAll()
+ def test_s3_create_image_locations(self):
+ image_location_1 = 'testbucket_1/test.img.manifest.xml'
+ # Use another location that starts with a '/'
+ image_location_2 = '/testbucket_2/test.img.manifest.xml'
+
+ metadata = [{'properties': {'image_location': image_location_1}},
+ {'properties': {'image_location': image_location_2}}]
+
+ for mdata in metadata:
+ self._initialize_mocks()
+ image = self.image_service._s3_create(self.context, mdata)
+ eventlet.sleep()
+ translated = self.image_service._translate_id_to_uuid(self.context,
+ image)
+ uuid = translated['id']
+ image_service = fake.FakeImageService()
+ updated_image = image_service.update(self.context, uuid,
+ {'properties': {'image_state': 'available'}},
+ purge_props=False)
+ self.assertEqual(updated_image['properties']['image_state'],
+ 'available')
+
+ def test_s3_create_is_public(self):
+ self._initialize_mocks()
+ metadata = {'properties': {
+ 'image_location': 'mybucket/my.img.manifest.xml'},
+ 'name': 'mybucket/my.img'}
img = self.image_service._s3_create(self.context, metadata)
eventlet.sleep()
translated = self.image_service._translate_id_to_uuid(self.context,
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.json.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.json.tpl
new file mode 100644
index 000000000..e59dbeeef
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.json.tpl
@@ -0,0 +1,56 @@
+{
+ "server": {
+ "OS-SRV-USG:launched_at": "%(timestamp)s",
+ "OS-SRV-USG:terminated_at": null,
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "addresses": {
+ "private": [
+ {
+ "addr": "%(ip)s",
+ "version": 4
+ }
+ ]
+ },
+ "created": "%(timestamp)s",
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "%(host)s/openstack/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "hostId": "%(hostid)s",
+ "id": "%(id)s",
+ "image": {
+ "id": "%(uuid)s",
+ "links": [
+ {
+ "href": "%(host)s/openstack/images/%(uuid)s",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "links": [
+ {
+ "href": "%(host)s/v2/openstack/servers/%(uuid)s",
+ "rel": "self"
+ },
+ {
+ "href": "%(host)s/openstack/servers/%(uuid)s",
+ "rel": "bookmark"
+ }
+ ],
+ "metadata": {
+ "My Server Name": "Apache1"
+ },
+ "name": "new-server-test",
+ "progress": 0,
+ "status": "ACTIVE",
+ "tenant_id": "openstack",
+ "updated": "%(timestamp)s",
+ "user_id": "fake"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.xml.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.xml.tpl
new file mode 100644
index 000000000..d258b03a4
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/server-get-resp.xml.tpl
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<server xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="%(timestamp)s" hostId="%(hostid)s" name="new-server-test" created="%(timestamp)s" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="%(id)s" OS-SRV-USG:terminated_at="None" OS-SRV-USG:launched_at="%(timestamp)s">
+ <image id="%(uuid)s">
+ <atom:link href="%(host)s/openstack/images/%(uuid)s" rel="bookmark"/>
+ </image>
+ <flavor id="1">
+ <atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
+ </flavor>
+ <metadata>
+ <meta key="My Server Name">Apache1</meta>
+ </metadata>
+ <addresses>
+ <network id="private">
+ <ip version="4" addr="%(ip)s"/>
+ </network>
+ </addresses>
+ <atom:link href="%(host)s/v2/openstack/servers/%(uuid)s" rel="self"/>
+ <atom:link href="%(host)s/openstack/servers/%(uuid)s" rel="bookmark"/>
+</server>
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.json.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.json.tpl
new file mode 100644
index 000000000..d3916d1aa
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.json.tpl
@@ -0,0 +1,16 @@
+{
+ "server" : {
+ "name" : "new-server-test",
+ "imageRef" : "%(host)s/openstack/images/%(image_id)s",
+ "flavorRef" : "%(host)s/openstack/flavors/1",
+ "metadata" : {
+ "My Server Name" : "Apache1"
+ },
+ "personality" : [
+ {
+ "path" : "/etc/banner.txt",
+ "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
+ }
+ ]
+ }
+}
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.xml.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.xml.tpl
new file mode 100644
index 000000000..f92614984
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-req.xml.tpl
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server xmlns="http://docs.openstack.org/compute/api/v1.1" imageRef="%(host)s/openstack/images/%(image_id)s" flavorRef="%(host)s/openstack/flavors/1" name="new-server-test">
+ <metadata>
+ <meta key="My Server Name">Apache1</meta>
+ </metadata>
+ <personality>
+ <file path="/etc/banner.txt">
+ ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
+ dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
+ IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
+ c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
+ QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
+ ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
+ dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
+ c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
+ b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
+ </file>
+ </personality>
+</server>
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.json.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.json.tpl
new file mode 100644
index 000000000..d5f030c87
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.json.tpl
@@ -0,0 +1,16 @@
+{
+ "server": {
+ "adminPass": "%(password)s",
+ "id": "%(id)s",
+ "links": [
+ {
+ "href": "%(host)s/v2/openstack/servers/%(uuid)s",
+ "rel": "self"
+ },
+ {
+ "href": "%(host)s/openstack/servers/%(uuid)s",
+ "rel": "bookmark"
+ }
+ ]
+ }
+}
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.xml.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.xml.tpl
new file mode 100644
index 000000000..3bb13e69b
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/server-post-resp.xml.tpl
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<server xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" id="%(id)s" adminPass="%(password)s">
+ <metadata/>
+ <atom:link href="%(host)s/v2/openstack/servers/%(uuid)s" rel="self"/>
+ <atom:link href="%(host)s/openstack/servers/%(uuid)s" rel="bookmark"/>
+</server>
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.json.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.json.tpl
new file mode 100644
index 000000000..cb431c6db
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.json.tpl
@@ -0,0 +1,57 @@
+{
+ "servers": [
+ {
+ "status": "ACTIVE",
+ "updated": "%(timestamp)s",
+ "OS-SRV-USG:launched_at": "%(timestamp)s",
+ "user_id": "fake",
+ "addresses": {
+ "private": [
+ {
+ "addr": "%(ip)s",
+ "version": 4
+ }
+ ]
+ },
+ "links": [
+ {
+ "href": "%(host)s/v2/openstack/servers/%(uuid)s",
+ "rel": "self"
+ },
+ {
+ "href": "%(host)s/openstack/servers/%(uuid)s",
+ "rel": "bookmark"
+ }
+ ],
+ "created": "%(timestamp)s",
+ "name": "new-server-test",
+ "image": {
+ "id": "%(uuid)s",
+ "links": [
+ {
+ "href": "%(host)s/openstack/images/%(uuid)s",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "id": "%(uuid)s",
+ "accessIPv4": "",
+ "accessIPv6": "",
+ "OS-SRV-USG:terminated_at": null,
+ "tenant_id": "openstack",
+ "progress": 0,
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "%(host)s/openstack/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "hostId": "%(hostid)s",
+ "metadata": {
+ "My Server Name": "Apache1"
+ }
+ }]
+}
diff --git a/nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.xml.tpl b/nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.xml.tpl
new file mode 100644
index 000000000..e01a50899
--- /dev/null
+++ b/nova/tests/integrated/api_samples/OS-SRV-USG/servers-detail-resp.xml.tpl
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<servers xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <server xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="%(timestamp)s" hostId="%(hostid)s" name="new-server-test" created="%(timestamp)s" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="%(id)s" OS-SRV-USG:launched_at="%(timestamp)s" OS-SRV-USG:terminated_at="None" >
+ <image id="%(uuid)s">
+ <atom:link href="%(host)s/openstack/images/%(uuid)s" rel="bookmark"/>
+ </image>
+ <flavor id="1">
+ <atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
+ </flavor>
+ <metadata>
+ <meta key="My Server Name">Apache1</meta>
+ </metadata>
+ <addresses>
+ <network id="private">
+ <ip version="4" addr="%(ip)s"/>
+ </network>
+ </addresses>
+ <atom:link href="%(host)s/v2/openstack/servers/%(uuid)s" rel="self"/>
+ <atom:link href="%(host)s/openstack/servers/%(uuid)s" rel="bookmark"/>
+ </server>
+</servers>
diff --git a/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.json.tpl b/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.json.tpl
index d559b4890..33ddb3fab 100644
--- a/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.json.tpl
@@ -89,6 +89,14 @@
"updated": "%(timestamp)s"
},
{
+ "alias": "OS-SRV-USG",
+ "description": "%(text)s",
+ "links": [],
+ "name": "ServerUsage",
+ "namespace": "http://docs.openstack.org/compute/ext/server_usage/api/v1.1",
+ "updated": "%(timestamp)s"
+ },
+ {
"alias": "OS-SCH-HNT",
"description": "%(text)s",
"links": [],
@@ -153,6 +161,14 @@
"updated": "%(timestamp)s"
},
{
+ "alias": "os-cell-capacities",
+ "description": "%(text)s",
+ "links": [],
+ "name": "CellCapacities",
+ "namespace": "http://docs.openstack.org/compute/ext/cell_capacities/api/v1.1",
+ "updated": "%(timestamp)s"
+ },
+ {
"alias": "os-certificates",
"description": "%(text)s",
"links": [],
@@ -345,6 +361,14 @@
"updated": "%(timestamp)s"
},
{
+ "alias": "os-extended-services",
+ "description": "%(text)s",
+ "links": [],
+ "name": "ExtendedServices",
+ "namespace": "http://docs.openstack.org/compute/ext/extended_services/api/v2",
+ "updated": "%(timestamp)s"
+ },
+ {
"alias": "os-fping",
"description": "%(text)s",
"links": [],
@@ -417,6 +441,14 @@
"updated": "%(timestamp)s"
},
{
+ "alias": "os-extended-quotas",
+ "description": "%(text)s",
+ "links": [],
+ "name": "ExtendedQuotas",
+ "namespace": "http://docs.openstack.org/compute/ext/quota-delete/api/v1.1",
+ "updated": "%(timestamp)s"
+ },
+ {
"alias": "os-quota-sets",
"description": "%(text)s",
"links": [],
@@ -489,6 +521,14 @@
"updated": "%(timestamp)s"
},
{
+ "alias": "os-used-limits-for-admin",
+ "description": "%(text)s",
+ "links": [],
+ "name": "UsedLimitsForAdmin",
+ "namespace": "http://docs.openstack.org/compute/ext/used_limits_for_admin/api/v1.1",
+ "updated": "%(timestamp)s"
+ },
+ {
"alias": "os-user-data",
"description": "%(text)s",
"links": [],
diff --git a/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.xml.tpl
index cc9ae4c02..bbbef2c2c 100644
--- a/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/extensions-get-resp.xml.tpl
@@ -33,6 +33,9 @@
<extension alias="OS-FLV-EXT-DATA" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/flavor_extra_data/api/v1.1" name="FlavorExtraData">
<description>%(text)s</description>
</extension>
+ <extension alias="OS-SRV-USG" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" name="ServerUsage">
+ <description>%(text)s</description>
+ </extension>
<extension alias="OS-SCH-HNT" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/scheduler-hints/api/v2" name="SchedulerHints">
<description>%(text)s</description>
</extension>
@@ -57,6 +60,9 @@
<extension alias="os-cells" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/cells/api/v1.1" name="Cells">
<description>%(text)s</description>
</extension>
+ <extension alias="os-cell-capacities" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/cell_capacities/api/v1.1" name="CellCapacities">
+ <description>%(text)s</description>
+ </extension>
<extension alias="os-certificates" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/certificates/api/v1.1" name="Certificates">
<description>%(text)s</description>
</extension>
@@ -129,6 +135,9 @@
<extension alias="os-services" name="Services" namespace="http://docs.openstack.org/compute/ext/services/api/v2" updated="%(timestamp)s">
<description>%(text)s</description>
</extension>
+ <extension alias="os-extended-services" name="ExtendedServices" namespace="http://docs.openstack.org/compute/ext/extended_services/api/v2" updated="%(timestamp)s">
+ <description>%(text)s</description>
+ </extension>
<extension alias="os-fping" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/fping/api/v1.1" name="Fping">
<description>%(text)s</description>
</extension>
@@ -156,6 +165,9 @@
<extension alias="os-quota-class-sets" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/quota-classes-sets/api/v1.1" name="QuotaClasses">
<description>%(text)s</description>
</extension>
+ <extension alias="os-extended-quotas" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/quota-delete/api/v1.1" name="ExtendedQuotas">
+ <description>%(text)s</description>
+ </extension>
<extension alias="os-quota-sets" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/quotas-sets/api/v1.1" name="Quotas">
<description>%(text)s</description>
</extension>
@@ -183,6 +195,9 @@
<extension alias="os-used-limits" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/used_limits/api/v1.1" name="UsedLimits">
<description>%(text)s</description>
</extension>
+ <extension alias="os-used-limits-for-admin" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/used_limits_for_admin/api/v1.1" name="UsedLimitsForAdmin">
+ <description>%(text)s</description>
+ </extension>
<extension alias="os-user-data" updated="%(timestamp)s" namespace="http://docs.openstack.org/compute/ext/userdata/api/v1.1" name="UserData">
<description>%(text)s</description>
</extension>
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl
index 22be331e4..c05cbc557 100644
--- a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.json.tpl
@@ -8,6 +8,8 @@
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
+ "OS-SRV-USG:launched_at": "%(timestamp)s",
+ "OS-SRV-USG:terminated_at": null,
"accessIPv4": "",
"accessIPv6": "",
"addresses": {
diff --git a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl
index 35fe0a6c3..176d6a834 100644
--- a/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/server-get-resp.xml.tpl
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
-<server xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="%(timestamp)s" hostId="%(hostid)s" name="new-server-test" created="%(timestamp)s" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="%(id)s" key_name="None" config_drive="" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="%(compute_host)s" OS-EXT-SRV-ATTR:hypervisor_hostname="%(hypervisor_hostname)s" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO">
+<server xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="%(timestamp)s" hostId="%(hostid)s" name="new-server-test" created="%(timestamp)s" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="%(id)s" key_name="None" config_drive="" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="%(compute_host)s" OS-EXT-SRV-ATTR:hypervisor_hostname="%(hypervisor_hostname)s" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO" OS-SRV-USG:launched_at="%(timestamp)s" OS-SRV-USG:terminated_at="None">
<image id="%(uuid)s">
<atom:link href="%(host)s/openstack/images/%(uuid)s" rel="bookmark"/>
</image>
diff --git a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl
index 649aa6f9b..f5d261426 100644
--- a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.json.tpl
@@ -9,6 +9,8 @@
"OS-EXT-STS:power_state": 1,
"OS-EXT-STS:task_state": null,
"OS-EXT-STS:vm_state": "active",
+ "OS-SRV-USG:launched_at": "%(timestamp)s",
+ "OS-SRV-USG:terminated_at": null,
"accessIPv4": "",
"accessIPv6": "",
"addresses": {
diff --git a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl
index 6ac363176..f7eba82bb 100644
--- a/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl
+++ b/nova/tests/integrated/api_samples/all_extensions/servers-details-resp.xml.tpl
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
-<servers xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
- <server xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="%(timestamp)s" hostId="%(hostid)s" name="new-server-test" created="%(timestamp)s" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="%(id)s" key_name="None" config_drive="" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="%(compute_host)s" OS-EXT-SRV-ATTR:hypervisor_hostname="%(hypervisor_hostname)s" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO">
+<servers xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-IPS-MAC="http://docs.openstack.org/compute/ext/extended_ips_mac/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-SRV-USG="http://docs.openstack.org/compute/ext/server_usage/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <server xmlns:OS-DCF="http://docs.openstack.org/compute/ext/disk_config/api/v1.1" xmlns:OS-EXT-AZ="http://docs.openstack.org/compute/ext/extended_availability_zone/api/v2" xmlns:OS-EXT-SRV-ATTR="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:OS-EXT-IPS="http://docs.openstack.org/compute/ext/extended_ips/api/v1.1" xmlns:OS-EXT-STS="http://docs.openstack.org/compute/ext/extended_status/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" status="ACTIVE" updated="%(timestamp)s" hostId="%(hostid)s" name="new-server-test" created="%(timestamp)s" userId="fake" tenantId="openstack" accessIPv4="" accessIPv6="" progress="0" id="%(id)s" key_name="None" config_drive="" OS-EXT-SRV-ATTR:vm_state="active" OS-EXT-SRV-ATTR:task_state="None" OS-EXT-SRV-ATTR:power_state="1" OS-EXT-SRV-ATTR:instance_name="instance-00000001" OS-EXT-SRV-ATTR:host="%(compute_host)s" OS-EXT-SRV-ATTR:hypervisor_hostname="%(hypervisor_hostname)s" OS-EXT-AZ:availability_zone="nova" OS-DCF:diskConfig="AUTO" OS-SRV-USG:launched_at="%(timestamp)s" OS-SRV-USG:terminated_at="None">
<image id="%(uuid)s">
<atom:link href="%(host)s/openstack/images/%(uuid)s" rel="bookmark"/>
</image>
diff --git a/nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.json.tpl b/nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.json.tpl
new file mode 100644
index 000000000..b926f8d1d
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.json.tpl
@@ -0,0 +1,18 @@
+{
+ "cell": {
+ "capacities": {
+ "ram_free": {
+ "units_by_mb": {
+ "8192": 0, "512": 13, "4096": 1, "2048": 3, "16384": 0
+ },
+ "total_mb": 7680
+ },
+ "disk_free": {
+ "units_by_mb": {
+ "81920": 11, "20480": 46, "40960": 23, "163840": 5, "0": 0
+ },
+ "total_mb": 1052672
+ }
+ }
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.xml.tpl b/nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.xml.tpl
new file mode 100644
index 000000000..63672b00b
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-cell-capacities/cells-capacities-resp.xml.tpl
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<cell xmlns="http://docs.rackspacecloud.com/servers/api/v1.0">
+ <capacities>
+ <ram_free total_mb="7680">
+ <unit_by_mb unit="0" mb="8192"/>
+ <unit_by_mb unit="13" mb="512"/>
+ <unit_by_mb unit="1" mb="4096"/>
+ <unit_by_mb unit="3" mb="2048"/>
+ <unit_by_mb unit="0" mb="16384"/>
+ </ram_free>
+ <disk_free total_mb="1052672">
+ <unit_by_mb unit="11" mb="81920"/>
+ <unit_by_mb unit="46" mb="20480"/>
+ <unit_by_mb unit="23" mb="40960"/>
+ <unit_by_mb unit="5" mb="163840"/>
+ <unit_by_mb unit="0" mb="0"/>
+ </disk_free>
+ </capacities>
+</cell>
diff --git a/nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.json.tpl b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.json.tpl
new file mode 100644
index 000000000..13ba2f11c
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.json.tpl
@@ -0,0 +1,5 @@
+{
+ "host": "%(host)s",
+ "binary": "%(binary)s",
+ "disabled_reason": "%(disabled_reason)s"
+}
diff --git a/nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.xml.tpl b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.xml.tpl
new file mode 100644
index 000000000..a1ffd7e20
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-req.xml.tpl
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<service host="%(host)s" binary="%(binary)s" disabled_reason="%(disabled_reason)s"/>
diff --git a/nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.json.tpl b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.json.tpl
new file mode 100644
index 000000000..5266b0b62
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.json.tpl
@@ -0,0 +1,8 @@
+{
+ "service": {
+ "binary": "%(binary)s",
+ "host": "%(host)s",
+ "disabled_reason": "%(disabled_reason)s",
+ "status": "disabled"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.xml.tpl b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.xml.tpl
new file mode 100644
index 000000000..f7255d385
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-services/service-disable-log-put-resp.xml.tpl
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<service status="disabled" binary="%(binary)s" host="%(host)s" disabled_reason="%(disabled_reason)s"/>
diff --git a/nova/tests/integrated/api_samples/os-services/services-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-services/services-get-resp.json.tpl
new file mode 100644
index 000000000..39eda4e72
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-services/services-get-resp.json.tpl
@@ -0,0 +1,40 @@
+{
+ "services": [
+ {
+ "binary": "nova-scheduler",
+ "host": "host1",
+ "disabled_reason": "test1",
+ "state": "up",
+ "status": "disabled",
+ "updated_at": "%(timestamp)s",
+ "zone": "internal"
+ },
+ {
+ "binary": "nova-compute",
+ "host": "host1",
+ "disabled_reason": "test2",
+ "state": "up",
+ "status": "disabled",
+ "updated_at": "%(timestamp)s",
+ "zone": "nova"
+ },
+ {
+ "binary": "nova-scheduler",
+ "host": "host2",
+ "disabled_reason": "",
+ "state": "down",
+ "status": "enabled",
+ "updated_at": "%(timestamp)s",
+ "zone": "internal"
+ },
+ {
+ "binary": "nova-compute",
+ "host": "host2",
+ "disabled_reason": "test4",
+ "state": "down",
+ "status": "disabled",
+ "updated_at": "%(timestamp)s",
+ "zone": "nova"
+ }
+ ]
+}
diff --git a/nova/tests/integrated/api_samples/os-services/services-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-services/services-get-resp.xml.tpl
new file mode 100644
index 000000000..53f8541ad
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-services/services-get-resp.xml.tpl
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<services>
+ <service status="disabled" binary="nova-scheduler" zone="internal" state="up" updated_at="%(timestamp)s" host="host1" disabled_reason="test1"/>
+ <service status="disabled" binary="nova-compute" zone="nova" state="up" updated_at="%(timestamp)s" host="host1" disabled_reason="test2"/>
+ <service status="enabled" binary="nova-scheduler" zone="internal" state="down" updated_at="%(timestamp)s" host="host2" disabled_reason=""/>
+ <service status="disabled" binary="nova-compute" zone="nova" state="down" updated_at="%(timestamp)s" host="host2" disabled_reason="test4"/>
+</services>
diff --git a/nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json.tpl
new file mode 100644
index 000000000..d83dd87c3
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.json.tpl
@@ -0,0 +1,90 @@
+{
+ "limits": {
+ "absolute": {
+ "maxImageMeta": 128,
+ "maxPersonality": 5,
+ "maxPersonalitySize": 10240,
+ "maxSecurityGroupRules": 20,
+ "maxSecurityGroups": 10,
+ "maxServerMeta": 128,
+ "maxTotalCores": 20,
+ "maxTotalFloatingIps": 10,
+ "maxTotalInstances": 10,
+ "maxTotalKeypairs": 100,
+ "maxTotalRAMSize": 51200,
+ "totalCoresUsed": 0,
+ "totalInstancesUsed": 0,
+ "totalRAMUsed": 0,
+ "totalSecurityGroupsUsed": 0,
+ "totalFloatingIpsUsed": 0
+ },
+ "rate": [
+ {
+ "limit": [
+ {
+ "next-available": "%(timestamp)s",
+ "remaining": 10,
+ "unit": "MINUTE",
+ "value": 10,
+ "verb": "POST"
+ },
+ {
+ "next-available": "%(timestamp)s",
+ "remaining": 10,
+ "unit": "MINUTE",
+ "value": 10,
+ "verb": "PUT"
+ },
+ {
+ "next-available": "%(timestamp)s",
+ "remaining": 100,
+ "unit": "MINUTE",
+ "value": 100,
+ "verb": "DELETE"
+ }
+ ],
+ "regex": ".*",
+ "uri": "*"
+ },
+ {
+ "limit": [
+ {
+ "next-available": "%(timestamp)s",
+ "remaining": 50,
+ "unit": "DAY",
+ "value": 50,
+ "verb": "POST"
+ }
+ ],
+ "regex": "^/servers",
+ "uri": "*/servers"
+ },
+ {
+ "limit": [
+ {
+ "next-available": "%(timestamp)s",
+ "remaining": 3,
+ "unit": "MINUTE",
+ "value": 3,
+ "verb": "GET"
+ }
+ ],
+ "regex": ".*changes-since.*",
+ "uri": "*changes-since*"
+ },
+ {
+ "limit": [
+ {
+ "next-available": "%(timestamp)s",
+ "remaining": 12,
+ "unit": "HOUR",
+ "value": 12,
+ "verb": "GET"
+ }
+ ],
+ "regex": "^/os-fping",
+ "uri": "*/os-fping"
+ }
+ ]
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml.tpl
new file mode 100644
index 000000000..c1b907670
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-used-limits-for-admin/usedlimitsforadmin-get-resp.xml.tpl
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<limits xmlns:os-used-limits="http://docs.openstack.org/compute/ext/used_limits/api/v1.1" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/common/api/v1.0">
+ <rates>
+ <rate regex=".*" uri="*">
+ <limit next-available="%(timestamp)s" unit="MINUTE" verb="POST" remaining="10" value="10"/>
+ <limit next-available="%(timestamp)s" unit="MINUTE" verb="PUT" remaining="10" value="10"/>
+ <limit next-available="%(timestamp)s" unit="MINUTE" verb="DELETE" remaining="100" value="100"/>
+ </rate>
+ <rate regex="^/servers" uri="*/servers">
+ <limit next-available="%(timestamp)s" unit="DAY" verb="POST" remaining="50" value="50"/>
+ </rate>
+ <rate regex=".*changes-since.*" uri="*changes-since*">
+ <limit next-available="%(timestamp)s" unit="MINUTE" verb="GET" remaining="3" value="3"/>
+ </rate>
+ <rate regex="^/os-fping" uri="*/os-fping">
+ <limit next-available="%(timestamp)s" unit="HOUR" verb="GET" remaining="12" value="12"/>
+ </rate>
+ </rates>
+ <absolute>
+ <limit name="maxServerMeta" value="128"/>
+ <limit name="maxTotalInstances" value="10"/>
+ <limit name="maxPersonality" value="5"/>
+ <limit name="maxImageMeta" value="128"/>
+ <limit name="maxPersonalitySize" value="10240"/>
+ <limit name="maxSecurityGroupRules" value="20"/>
+ <limit name="maxTotalKeypairs" value="100"/>
+ <limit name="totalCoresUsed" value="0"/>
+ <limit name="totalRAMUsed" value="0"/>
+ <limit name="totalInstancesUsed" value="0"/>
+ <limit name="maxSecurityGroups" value="10"/>
+ <limit name="maxTotalCores" value="20"/>
+ <limit name="totalSecurityGroupsUsed" value="0"/>
+ <limit name="maxTotalFloatingIps" value="10"/>
+ <limit name="totalFloatingIpsUsed" value="0"/>
+ <limit name="maxTotalRAMSize" value="51200"/>
+ </absolute>
+</limits>
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index 37a8de08a..a7e66cefd 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -30,7 +30,9 @@ from oslo.config import cfg
from nova.api.metadata import password
from nova.api.openstack.compute.contrib import coverage_ext
from nova.api.openstack.compute.contrib import fping
+from nova.api.openstack.compute.extensions import ExtensionManager as ext_mgr
# Import extensions to pull in osapi_compute_extension CONF option used below.
+from nova.cells import state
from nova.cloudpipe import pipelib
from nova.compute import api as compute_api
from nova.compute import manager as compute_manager
@@ -54,6 +56,7 @@ from nova.tests.api.openstack.compute.contrib import test_services
from nova.tests.api.openstack import fakes
from nova.tests import fake_instance_actions
from nova.tests import fake_network
+from nova.tests import fake_utils
from nova.tests.image import fake
from nova.tests.integrated import integrated_helpers
from nova.tests import utils as test_utils
@@ -93,7 +96,9 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
ext = [self.extension_name] if self.extension_name else []
self.flags(osapi_compute_extension=ext + extends)
super(ApiSampleTestBase, self).setUp()
+ self.useFixture(test.SampleNetworks())
fake_network.stub_compute_with_ips(self.stubs)
+ fake_utils.stub_out_utils_spawn_n(self.stubs)
self.generate_samples = os.getenv('GENERATE_SAMPLES') is not None
def _pretty_data(self, data):
@@ -149,7 +154,7 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
@classmethod
def _get_sample(cls, name):
dirname = os.path.dirname(os.path.abspath(__file__))
- dirname = os.path.join(dirname, "../../../doc")
+ dirname = os.path.normpath(os.path.join(dirname, "../../../doc"))
return cls._get_sample_path(name, dirname)
@classmethod
@@ -1892,6 +1897,25 @@ class UsedLimitsSamplesXmlTest(UsedLimitsSamplesJsonTest):
ctype = "xml"
+class UsedLimitsForAdminSamplesJsonTest(ApiSampleTestBase):
+ extends_name = ("nova.api.openstack.compute.contrib.used_limits."
+ "Used_limits")
+ extension_name = (
+ "nova.api.openstack.compute.contrib.used_limits_for_admin."
+ "Used_limits_for_admin")
+
+ def test_get_used_limits_for_admin(self):
+ tenant_id = 'openstack'
+ response = self._do_get('limits?tenant_id=%s' % tenant_id)
+ subs = self._get_regexes()
+ return self._verify_response('usedlimitsforadmin-get-resp', subs,
+ response, 200)
+
+
+class UsedLimitsForAdminSamplesXmlTest(UsedLimitsForAdminSamplesJsonTest):
+ ctype = "xml"
+
+
class MultipleCreateJsonTest(ServersSampleBase):
extension_name = ("nova.api.openstack.compute.contrib.multiple_create."
"Multiple_create")
@@ -1942,6 +1966,9 @@ class ServicesJsonTest(ApiSampleTestBase):
super(ServicesJsonTest, self).tearDown()
timeutils.clear_time_override()
+ def fake_load(self, *args):
+ return True
+
def test_services_list(self):
"""Return a list of all agent builds."""
response = self._do_get('os-services')
@@ -1973,11 +2000,55 @@ class ServicesJsonTest(ApiSampleTestBase):
"binary": "nova-compute"}
self._verify_response('service-disable-put-resp', subs, response, 200)
+ def test_service_detail(self):
+ """
+ Return a list of all running services with the disable reason
+ information if that exists.
+ """
+ self.stubs.Set(ext_mgr, "is_loaded", self.fake_load)
+ response = self._do_get('os-services')
+ self.assertEqual(response.status, 200)
+ subs = {'binary': 'nova-compute',
+ 'host': 'host1',
+ 'zone': 'nova',
+ 'status': 'disabled',
+ 'state': 'up'}
+ subs.update(self._get_regexes())
+ return self._verify_response('services-get-resp',
+ subs, response, 200)
+
+ def test_service_disable_log_reason(self):
+ """Disable an existing service and log the reason."""
+ self.stubs.Set(ext_mgr, "is_loaded", self.fake_load)
+ subs = {"host": "host1",
+ 'binary': 'nova-compute',
+ 'disabled_reason': 'test2'}
+ response = self._do_put('os-services/disable-log-reason',
+ 'service-disable-log-put-req', subs)
+ return self._verify_response('service-disable-log-put-resp',
+ subs, response, 200)
+
class ServicesXmlTest(ServicesJsonTest):
ctype = 'xml'
+class ExtendedServicesJsonTest(ApiSampleTestBase):
+ """
+ This extension is extending the functionalities of the
+ Services extension so the funcionalities introduced by this extension
+ are tested in the ServicesJsonTest and ServicesXmlTest classes.
+ """
+
+ extension_name = ("nova.api.openstack.compute.contrib."
+ "extended_services.Extended_services")
+
+
+class ExtendedServicesXmlTest(ExtendedServicesJsonTest):
+ """This extension is tested in the ServicesXmlTest class."""
+ ctype = 'xml'
+
+
class SimpleTenantUsageSampleJsonTest(ServersSampleBase):
extension_name = ("nova.api.openstack.compute.contrib.simple_tenant_usage."
"Simple_tenant_usage")
@@ -2277,6 +2348,22 @@ class QuotasSampleXmlTests(QuotasSampleJsonTests):
ctype = "xml"
+class ExtendedQuotasSampleJsonTests(ApiSampleTestBase):
+ extends_name = "nova.api.openstack.compute.contrib.quotas.Quotas"
+ extension_name = ("nova.api.openstack.compute.contrib"
+ ".extended_quotas.Extended_quotas")
+
+ def test_delete_quotas(self):
+ # Get api sample to delete quota.
+ response = self._do_delete('os-quota-sets/fake_tenant')
+ self.assertEqual(response.status, 202)
+ self.assertEqual(response.read(), '')
+
+
+class ExtendedQuotasSampleXmlTests(ExtendedQuotasSampleJsonTests):
+ ctype = "xml"
+
+
class ExtendedIpsSampleJsonTests(ServersSampleBase):
extension_name = ("nova.api.openstack.compute.contrib"
".extended_ips.Extended_ips")
@@ -2357,6 +2444,30 @@ class ExtendedStatusSampleXmlTests(ExtendedStatusSampleJsonTests):
ctype = 'xml'
+class ServerUsageSampleJsonTests(ServersSampleBase):
+ extension_name = ("nova.api.openstack.compute.contrib"
+ ".server_usage.Server_usage")
+
+ def test_show(self):
+ uuid = self._post_server()
+ response = self._do_get('servers/%s' % uuid)
+ subs = self._get_regexes()
+ subs['hostid'] = '[a-f0-9]+'
+ return self._verify_response('server-get-resp', subs, response, 200)
+
+ def test_detail(self):
+ self._post_server()
+ response = self._do_get('servers/detail')
+ subs = self._get_regexes()
+ subs['hostid'] = '[a-f0-9]+'
+ return self._verify_response('servers-detail-resp', subs,
+ response, 200)
+
+
+class ServerUsageSampleXmlTests(ServerUsageSampleJsonTests):
+ ctype = 'xml'
+
+
class ExtendedVIFNetSampleJsonTests(ServersSampleBase):
extension_name = ("nova.api.openstack.compute.contrib"
".extended_virtual_interfaces_net.Extended_virtual_interfaces_net")
@@ -2776,6 +2887,54 @@ class CellsSampleXmlTest(CellsSampleJsonTest):
ctype = 'xml'
+class CellsCapacitySampleJsonTest(ApiSampleTestBase):
+ extends_name = ("nova.api.openstack.compute.contrib.cells.Cells")
+ extension_name = ("nova.api.openstack.compute.contrib."
+ "cell_capacities.Cell_capacities")
+
+ def setUp(self):
+ self.flags(enable=True, db_check_interval=-1, group='cells')
+ super(CellsCapacitySampleJsonTest, self).setUp()
+ # (navneetk/kaushikc) : Mock cell capacity to avoid the capacity
+ # being calculated from the compute nodes in the environment
+ self._mock_cell_capacity()
+
+ def test_get_cell_capacity(self):
+ state_manager = state.CellStateManager()
+ my_state = state_manager.get_my_state()
+ response = self._do_get('os-cells/%s/capacities' %
+ my_state.name)
+ subs = self._get_regexes()
+ return self._verify_response('cells-capacities-resp',
+ subs, response, 200)
+
+ def test_get_all_cells_capacity(self):
+ response = self._do_get('os-cells/capacities')
+ subs = self._get_regexes()
+ return self._verify_response('cells-capacities-resp',
+ subs, response, 200)
+
+ def _mock_cell_capacity(self):
+ self.mox.StubOutWithMock(self.cells.manager.state_manager,
+ 'get_our_capacities')
+ response = {"ram_free":
+ {"units_by_mb": {"8192": 0, "512": 13,
+ "4096": 1, "2048": 3, "16384": 0},
+ "total_mb": 7680},
+ "disk_free":
+ {"units_by_mb": {"81920": 11, "20480": 46,
+ "40960": 23, "163840": 5, "0": 0},
+ "total_mb": 1052672}
+ }
+ self.cells.manager.state_manager.get_our_capacities(). \
+ AndReturn(response)
+ self.mox.ReplayAll()
+
+
+class CellsCapacitySampleXmlTest(CellsCapacitySampleJsonTest):
+ ctype = 'xml'
+
+
class BareMetalNodesJsonTest(ApiSampleTestBase, bm_db_base.BMDBTestCase):
extension_name = ('nova.api.openstack.compute.contrib.baremetal_nodes.'
'Baremetal_nodes')
diff --git a/nova/tests/integrated/test_servers.py b/nova/tests/integrated/test_servers.py
index b45bd88f7..694577fa0 100644
--- a/nova/tests/integrated/test_servers.py
+++ b/nova/tests/integrated/test_servers.py
@@ -126,7 +126,7 @@ class ServersTest(integrated_helpers._IntegratedTestBase):
# It should also be in the all-servers list
servers = self.api.get_servers()
- server_ids = [server['id'] for server in servers]
+ server_ids = [s['id'] for s in servers]
self.assertTrue(created_server_id in server_ids)
found_server = self._wait_for_state_change(found_server, 'BUILD')
diff --git a/nova/tests/network/test_api.py b/nova/tests/network/test_api.py
index 871d26616..13bc3ce67 100644
--- a/nova/tests/network/test_api.py
+++ b/nova/tests/network/test_api.py
@@ -81,9 +81,9 @@ class ApiTestCase(test.TestCase):
self.network_api.network_rpcapi.allocate_for_instance(
mox.IgnoreArg(), **kwargs).AndReturn([])
self.mox.ReplayAll()
- inst_type = flavors.get_default_instance_type()
+ inst_type = flavors.get_default_flavor()
inst_type['rxtx_factor'] = 0
- sys_meta = flavors.save_instance_type_info({}, inst_type)
+ sys_meta = flavors.save_flavor_info({}, inst_type)
instance = dict(id='id', uuid='uuid', project_id='project_id',
host='host', system_metadata=utils.dict_to_metadata(sys_meta))
self.network_api.allocate_for_instance(
@@ -140,10 +140,10 @@ class ApiTestCase(test.TestCase):
self._do_test_associate_floating_ip(None)
def _stub_migrate_instance_calls(self, method, multi_host, info):
- fake_instance_type = flavors.get_default_instance_type()
+ fake_instance_type = flavors.get_default_flavor()
fake_instance_type['rxtx_factor'] = 1.21
sys_meta = utils.dict_to_metadata(
- flavors.save_instance_type_info({}, fake_instance_type))
+ flavors.save_flavor_info({}, fake_instance_type))
fake_instance = {'uuid': 'fake_uuid',
'instance_type_id': fake_instance_type['id'],
'project_id': 'fake_project_id',
diff --git a/nova/tests/network/test_manager.py b/nova/tests/network/test_manager.py
index b8f75233a..d534e7857 100644
--- a/nova/tests/network/test_manager.py
+++ b/nova/tests/network/test_manager.py
@@ -519,6 +519,7 @@ class FlatNetworkTestCase(test.TestCase):
class VlanNetworkTestCase(test.TestCase):
def setUp(self):
super(VlanNetworkTestCase, self).setUp()
+ self.useFixture(test.SampleNetworks())
self.network = network_manager.VlanManager(host=HOST)
self.network.db = db
self.context = context.RequestContext('testuser', 'testproject',
@@ -1929,6 +1930,7 @@ class TestFloatingIPManager(floating_ips.FloatingIP,
class AllocateTestCase(test.TestCase):
def setUp(self):
super(AllocateTestCase, self).setUp()
+ self.useFixture(test.SampleNetworks())
self.conductor = self.start_service(
'conductor', manager=CONF.conductor.manager)
self.compute = self.start_service('compute')
diff --git a/nova/tests/network/test_network_info.py b/nova/tests/network/test_network_info.py
index 56522e6a5..bb3d91f55 100644
--- a/nova/tests/network/test_network_info.py
+++ b/nova/tests/network/test_network_info.py
@@ -332,6 +332,34 @@ class NetworkInfoTests(test.TestCase):
fake_network_cache_model.new_ip(
{'address': '10.10.0.3'})] * 4)
+ def test_create_async_model(self):
+ def async_wrapper():
+ return model.NetworkInfo(
+ [fake_network_cache_model.new_vif(),
+ fake_network_cache_model.new_vif(
+ {'address': 'bb:bb:bb:bb:bb:bb'})])
+
+ ninfo = model.NetworkInfoAsyncWrapper(async_wrapper)
+ self.assertEqual(ninfo.fixed_ips(),
+ [fake_network_cache_model.new_ip({'address': '10.10.0.2'}),
+ fake_network_cache_model.new_ip(
+ {'address': '10.10.0.3'})] * 4)
+
+ def test_create_async_model_exceptions(self):
+ def async_wrapper():
+ raise test.TestingException()
+
+ ninfo = model.NetworkInfoAsyncWrapper(async_wrapper)
+ self.assertRaises(test.TestingException, ninfo.wait)
+ # 2nd one doesn't raise
+ self.assertEqual(None, ninfo.wait())
+ # Test that do_raise=False works on .wait()
+ ninfo = model.NetworkInfoAsyncWrapper(async_wrapper)
+ self.assertEqual(None, ninfo.wait(do_raise=False))
+ # Test we also raise calling a method
+ ninfo = model.NetworkInfoAsyncWrapper(async_wrapper)
+ self.assertRaises(test.TestingException, ninfo.fixed_ips)
+
def test_get_floating_ips(self):
vif = fake_network_cache_model.new_vif()
vif['network']['subnets'][0]['ips'][0].add_floating_ip('192.168.1.1')
diff --git a/nova/tests/network/test_quantumv2.py b/nova/tests/network/test_quantumv2.py
index ec1e88d86..0b6f184ae 100644
--- a/nova/tests/network/test_quantumv2.py
+++ b/nova/tests/network/test_quantumv2.py
@@ -19,6 +19,8 @@ import uuid
import mox
from oslo.config import cfg
+from quantumclient import client as quantum_client
+from quantumclient.common import exceptions as quantum_exceptions
from quantumclient.v2_0 import client
from nova.compute import flavors
@@ -102,6 +104,17 @@ class TestQuantumClient(test.TestCase):
self.mox.ReplayAll()
quantumv2.get_client(my_context)
+ def test_cached_admin_client(self):
+ self.mox.StubOutWithMock(quantum_client.HTTPClient, "authenticate")
+
+ # should be called one time only
+ quantum_client.HTTPClient.authenticate()
+ self.mox.ReplayAll()
+
+ admin1 = quantumv2.get_client(None, admin=True)
+ admin2 = quantumv2.get_client(None, admin=True)
+ self.assertIs(admin1, admin2)
+
def test_withouttoken_keystone_connection_error(self):
self.flags(quantum_auth_strategy='keystone')
self.flags(quantum_url='http://anyhost/')
@@ -389,10 +402,10 @@ class TestQuantumv2(test.TestCase):
self.moxed_client.list_extensions().AndReturn(
{'extensions': [{'name': 'nvp-qos'}]})
self.mox.ReplayAll()
- instance_type = flavors.get_default_instance_type()
+ instance_type = flavors.get_default_flavor()
instance_type['rxtx_factor'] = 1
sys_meta = utils.dict_to_metadata(
- flavors.save_instance_type_info({}, instance_type))
+ flavors.save_flavor_info({}, instance_type))
instance = {'system_metadata': sys_meta}
port_req_body = {'port': {}}
api._populate_quantum_extension_values(instance, port_req_body)
@@ -1223,7 +1236,7 @@ class TestQuantumv2(test.TestCase):
def test_list_floating_ips_without_l3_support(self):
api = quantumapi.API()
- QuantumNotFound = quantumv2.exceptions.QuantumClientException(
+ QuantumNotFound = quantum_exceptions.QuantumClientException(
status_code=404)
self.moxed_client.list_floatingips(
fixed_ip_address='1.1.1.1', port_id=1).AndRaise(QuantumNotFound)
diff --git a/nova/tests/objects/__init__.py b/nova/tests/objects/__init__.py
new file mode 100644
index 000000000..67f4db51a
--- /dev/null
+++ b/nova/tests/objects/__init__.py
@@ -0,0 +1,13 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
diff --git a/nova/tests/objects/test_instance.py b/nova/tests/objects/test_instance.py
new file mode 100644
index 000000000..54e010a8a
--- /dev/null
+++ b/nova/tests/objects/test_instance.py
@@ -0,0 +1,312 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import datetime
+import iso8601
+import netaddr
+
+from nova import context
+from nova import db
+from nova.objects import instance
+from nova.openstack.common import timeutils
+from nova.tests.api.openstack import fakes
+from nova.tests.objects import test_objects
+
+
+class _TestInstanceObject(object):
+ @property
+ def fake_instance(self):
+ fake_instance = fakes.stub_instance(id=2,
+ access_ipv4='1.2.3.4',
+ access_ipv6='::1')
+ fake_instance['scheduled_at'] = None
+ fake_instance['terminated_at'] = None
+ fake_instance['deleted_at'] = None
+ fake_instance['created_at'] = None
+ fake_instance['updated_at'] = None
+ fake_instance['launched_at'] = (
+ fake_instance['launched_at'].replace(
+ tzinfo=iso8601.iso8601.Utc(), microsecond=0))
+ fake_instance['deleted'] = False
+ return fake_instance
+
+ def test_datetime_deserialization(self):
+ red_letter_date = timeutils.parse_isotime(
+ timeutils.isotime(datetime.datetime(1955, 11, 5)))
+ inst = instance.Instance()
+ inst.uuid = 'fake-uuid'
+ inst.launched_at = red_letter_date
+ primitive = inst.obj_to_primitive()
+ expected = {'nova_object.name': 'Instance',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.0',
+ 'nova_object.data':
+ {'uuid': 'fake-uuid',
+ 'launched_at': '1955-11-05T00:00:00Z'},
+ 'nova_object.changes': ['uuid', 'launched_at']}
+ self.assertEqual(primitive, expected)
+ inst2 = instance.Instance.obj_from_primitive(primitive)
+ self.assertTrue(isinstance(inst2.launched_at,
+ datetime.datetime))
+ self.assertEqual(inst2.launched_at, red_letter_date)
+
+ def test_ip_deserialization(self):
+ inst = instance.Instance()
+ inst.uuid = 'fake-uuid'
+ inst.access_ip_v4 = '1.2.3.4'
+ inst.access_ip_v6 = '::1'
+ primitive = inst.obj_to_primitive()
+ expected = {'nova_object.name': 'Instance',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.0',
+ 'nova_object.data':
+ {'uuid': 'fake-uuid',
+ 'access_ip_v4': '1.2.3.4',
+ 'access_ip_v6': '::1'},
+ 'nova_object.changes': ['uuid', 'access_ip_v6',
+ 'access_ip_v4']}
+ self.assertEqual(primitive, expected)
+ inst2 = instance.Instance.obj_from_primitive(primitive)
+ self.assertTrue(isinstance(inst2.access_ip_v4, netaddr.IPAddress))
+ self.assertTrue(isinstance(inst2.access_ip_v6, netaddr.IPAddress))
+ self.assertEqual(inst2.access_ip_v4, netaddr.IPAddress('1.2.3.4'))
+ self.assertEqual(inst2.access_ip_v6, netaddr.IPAddress('::1'))
+
+ def test_get_without_expected(self):
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
+ db.instance_get_by_uuid(ctxt, 'uuid', []).AndReturn(self.fake_instance)
+ self.mox.ReplayAll()
+ inst = instance.Instance.get_by_uuid(ctxt, uuid='uuid')
+ # Make sure these weren't loaded
+ self.assertFalse(hasattr(inst, '_metadata'))
+ self.assertFalse(hasattr(inst, '_system_metadata'))
+ self.assertRemotes()
+
+ def test_get_with_expected(self):
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
+ db.instance_get_by_uuid(
+ ctxt, 'uuid',
+ ['metadata', 'system_metadata']).AndReturn(self.fake_instance)
+ self.mox.ReplayAll()
+ inst = instance.Instance.get_by_uuid(
+ ctxt, 'uuid', expected_attrs=['metadata', 'system_metadata'])
+ self.assertTrue(hasattr(inst, '_metadata'))
+ self.assertTrue(hasattr(inst, '_system_metadata'))
+ self.assertRemotes()
+
+ def test_load(self):
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
+ fake_uuid = self.fake_instance['uuid']
+ db.instance_get_by_uuid(ctxt, fake_uuid, []).AndReturn(
+ self.fake_instance)
+ fake_inst2 = dict(self.fake_instance,
+ system_metadata=[{'key': 'foo', 'value': 'bar'}])
+ db.instance_get_by_uuid(ctxt, fake_uuid, ['system_metadata']
+ ).AndReturn(fake_inst2)
+ self.mox.ReplayAll()
+ inst = instance.Instance.get_by_uuid(ctxt, fake_uuid)
+ self.assertFalse(hasattr(inst, '_system_metadata'))
+ sys_meta = inst.system_metadata
+ self.assertEqual(sys_meta, {'foo': 'bar'})
+ self.assertTrue(hasattr(inst, '_system_metadata'))
+ # Make sure we don't run load again
+ sys_meta2 = inst.system_metadata
+ self.assertEqual(sys_meta2, {'foo': 'bar'})
+ self.assertRemotes()
+
+ def test_get_remote(self):
+ # isotime doesn't have microseconds and is always UTC
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
+ fake_instance = self.fake_instance
+ db.instance_get_by_uuid(ctxt, 'fake-uuid', []).AndReturn(
+ fake_instance)
+ self.mox.ReplayAll()
+ inst = instance.Instance.get_by_uuid(ctxt, 'fake-uuid')
+ self.assertEqual(inst.id, fake_instance['id'])
+ self.assertEqual(inst.launched_at, fake_instance['launched_at'])
+ self.assertEqual(str(inst.access_ip_v4),
+ fake_instance['access_ip_v4'])
+ self.assertEqual(str(inst.access_ip_v6),
+ fake_instance['access_ip_v6'])
+ self.assertRemotes()
+
+ def test_refresh(self):
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
+ fake_uuid = self.fake_instance['uuid']
+ db.instance_get_by_uuid(ctxt, fake_uuid, []).AndReturn(
+ dict(self.fake_instance, host='orig-host'))
+ db.instance_get_by_uuid(ctxt, fake_uuid, []).AndReturn(
+ dict(self.fake_instance, host='new-host'))
+ self.mox.ReplayAll()
+ inst = instance.Instance.get_by_uuid(ctxt, fake_uuid)
+ self.assertEqual(inst.host, 'orig-host')
+ inst.refresh()
+ self.assertEqual(inst.host, 'new-host')
+ self.assertRemotes()
+
+ def test_save(self):
+ ctxt = context.get_admin_context()
+ fake_inst = dict(self.fake_instance, host='oldhost')
+ fake_uuid = fake_inst['uuid']
+ self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
+ self.mox.StubOutWithMock(db, 'instance_update_and_get_original')
+ db.instance_get_by_uuid(ctxt, fake_uuid, []).AndReturn(fake_inst)
+ db.instance_update_and_get_original(
+ ctxt, fake_uuid, {'user_data': 'foo'}).AndReturn(
+ (fake_inst, dict(fake_inst, host='newhost')))
+ self.mox.ReplayAll()
+ inst = instance.Instance.get_by_uuid(ctxt, fake_uuid)
+ inst.user_data = 'foo'
+ inst.save()
+ self.assertEqual(inst.host, 'newhost')
+
+ def test_get_deleted(self):
+ ctxt = context.get_admin_context()
+ fake_inst = dict(self.fake_instance, id=123, deleted=123)
+ fake_uuid = fake_inst['uuid']
+ self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
+ db.instance_get_by_uuid(ctxt, fake_uuid, []).AndReturn(fake_inst)
+ self.mox.ReplayAll()
+ inst = instance.Instance.get_by_uuid(ctxt, fake_uuid)
+ # NOTE(danms): Make sure it's actually a bool
+ self.assertEqual(inst.deleted, True)
+
+
+class TestInstanceObject(test_objects._LocalTest,
+ _TestInstanceObject):
+ pass
+
+
+class TestRemoteInstanceObject(test_objects._RemoteTest,
+ _TestInstanceObject):
+ pass
+
+
+class _TestInstanceListObject(object):
+ def fake_instance(self, id, updates=None):
+ fake_instance = fakes.stub_instance(id=2,
+ access_ipv4='1.2.3.4',
+ access_ipv6='::1')
+ fake_instance['scheduled_at'] = None
+ fake_instance['terminated_at'] = None
+ fake_instance['deleted_at'] = None
+ fake_instance['created_at'] = None
+ fake_instance['updated_at'] = None
+ fake_instance['launched_at'] = (
+ fake_instance['launched_at'].replace(
+ tzinfo=iso8601.iso8601.Utc(), microsecond=0))
+ fake_instance['info_cache'] = {'network_info': 'foo',
+ 'instance_uuid': fake_instance['uuid']}
+ fake_instance['deleted'] = 0
+ if updates:
+ fake_instance.update(updates)
+ return fake_instance
+
+ def test_get_all_by_filters(self):
+ fakes = [self.fake_instance(1), self.fake_instance(2)]
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_all_by_filters')
+ db.instance_get_all_by_filters(ctxt, {'foo': 'bar'}, 'uuid', 'asc',
+ None, None,
+ columns_to_join=['metadata']).AndReturn(
+ fakes)
+ self.mox.ReplayAll()
+ inst_list = instance.InstanceList.get_by_filters(
+ ctxt, {'foo': 'bar'}, 'uuid', 'asc', expected_attrs=['metadata'])
+
+ for i in range(0, len(fakes)):
+ self.assertTrue(isinstance(inst_list.objects[i],
+ instance.Instance))
+ self.assertEqual(inst_list.objects[i].uuid, fakes[i]['uuid'])
+ self.assertRemotes()
+
+ def test_get_by_host(self):
+ fakes = [self.fake_instance(1),
+ self.fake_instance(2)]
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_all_by_host')
+ db.instance_get_all_by_host(ctxt, 'foo',
+ columns_to_join=None).AndReturn(fakes)
+ self.mox.ReplayAll()
+ inst_list = instance.InstanceList.get_by_host(ctxt, 'foo')
+ for i in range(0, len(fakes)):
+ self.assertTrue(isinstance(inst_list.objects[i],
+ instance.Instance))
+ self.assertEqual(inst_list.objects[i].uuid, fakes[i]['uuid'])
+ self.assertEqual(inst_list.obj_what_changed(), set())
+ self.assertRemotes()
+
+ def test_get_by_host_and_node(self):
+ fakes = [self.fake_instance(1),
+ self.fake_instance(2)]
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_all_by_host_and_node')
+ db.instance_get_all_by_host_and_node(ctxt, 'foo', 'bar').AndReturn(
+ fakes)
+ self.mox.ReplayAll()
+ inst_list = instance.InstanceList.get_by_host_and_node(ctxt, 'foo',
+ 'bar')
+ for i in range(0, len(fakes)):
+ self.assertTrue(isinstance(inst_list.objects[i],
+ instance.Instance))
+ self.assertEqual(inst_list.objects[i].uuid, fakes[i]['uuid'])
+ self.assertRemotes()
+
+ def test_get_by_host_and_not_type(self):
+ fakes = [self.fake_instance(1),
+ self.fake_instance(2)]
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_all_by_host_and_not_type')
+ db.instance_get_all_by_host_and_not_type(ctxt, 'foo',
+ type_id='bar').AndReturn(
+ fakes)
+ self.mox.ReplayAll()
+ inst_list = instance.InstanceList.get_by_host_and_not_type(ctxt, 'foo',
+ 'bar')
+ for i in range(0, len(fakes)):
+ self.assertTrue(isinstance(inst_list.objects[i],
+ instance.Instance))
+ self.assertEqual(inst_list.objects[i].uuid, fakes[i]['uuid'])
+ self.assertRemotes()
+
+ def test_get_hung_in_rebooting(self):
+ fakes = [self.fake_instance(1),
+ self.fake_instance(2)]
+ dt = timeutils.isotime()
+ ctxt = context.get_admin_context()
+ self.mox.StubOutWithMock(db, 'instance_get_all_hung_in_rebooting')
+ db.instance_get_all_hung_in_rebooting(ctxt, dt).AndReturn(
+ fakes)
+ self.mox.ReplayAll()
+ inst_list = instance.InstanceList.get_hung_in_rebooting(ctxt, dt)
+ for i in range(0, len(fakes)):
+ self.assertTrue(isinstance(inst_list.objects[i],
+ instance.Instance))
+ self.assertEqual(inst_list.objects[i].uuid, fakes[i]['uuid'])
+ self.assertRemotes()
+
+
+class TestInstanceListObject(test_objects._LocalTest,
+ _TestInstanceListObject):
+ pass
+
+
+class TestRemoteInstanceListObject(test_objects._RemoteTest,
+ _TestInstanceListObject):
+ pass
diff --git a/nova/tests/objects/test_objects.py b/nova/tests/objects/test_objects.py
new file mode 100644
index 000000000..9c92230eb
--- /dev/null
+++ b/nova/tests/objects/test_objects.py
@@ -0,0 +1,491 @@
+# Copyright 2013 IBM Corp.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import contextlib
+import datetime
+import gettext
+import iso8601
+import netaddr
+
+gettext.install('nova')
+
+from nova.conductor import rpcapi as conductor_rpcapi
+from nova import context
+from nova import exception
+from nova.objects import base
+from nova.objects import utils
+from nova.openstack.common import timeutils
+from nova import test
+
+
+class MyObj(base.NovaObject):
+ version = '1.5'
+ fields = {'foo': int,
+ 'bar': str,
+ 'missing': str,
+ }
+
+ def obj_load(self, attrname):
+ setattr(self, attrname, 'loaded!')
+
+ @base.remotable_classmethod
+ def get(cls, context):
+ obj = cls()
+ obj.foo = 1
+ obj.bar = 'bar'
+ obj.obj_reset_changes()
+ return obj
+
+ @base.remotable
+ def marco(self, context):
+ return 'polo'
+
+ @base.remotable
+ def update_test(self, context):
+ if context.project_id == 'alternate':
+ self.bar = 'alternate-context'
+ else:
+ self.bar = 'updated'
+
+ @base.remotable
+ def save(self, context):
+ self.obj_reset_changes()
+
+ @base.remotable
+ def refresh(self, context):
+ self.foo = 321
+ self.bar = 'refreshed'
+ self.obj_reset_changes()
+
+ @base.remotable
+ def modify_save_modify(self, context):
+ self.bar = 'meow'
+ self.save()
+ self.foo = 42
+
+
+class MyObj2(object):
+ @classmethod
+ def obj_name(cls):
+ return 'MyObj'
+
+ @base.remotable_classmethod
+ def get(cls, *args, **kwargs):
+ pass
+
+
+class TestMetaclass(test.TestCase):
+ def test_obj_tracking(self):
+
+ class NewBaseClass(object):
+ __metaclass__ = base.NovaObjectMetaclass
+ fields = {}
+
+ @classmethod
+ def obj_name(cls):
+ return cls.__name__
+
+ class Test1(NewBaseClass):
+ @staticmethod
+ def obj_name():
+ return 'fake1'
+
+ class Test2(NewBaseClass):
+ pass
+
+ class Test2v2(NewBaseClass):
+ @staticmethod
+ def obj_name():
+ return 'Test2'
+
+ expected = {'fake1': [Test1], 'Test2': [Test2, Test2v2]}
+
+ self.assertEqual(expected, NewBaseClass._obj_classes)
+ # The following should work, also.
+ self.assertEqual(expected, Test1._obj_classes)
+ self.assertEqual(expected, Test2._obj_classes)
+
+
+class TestUtils(test.TestCase):
+ def test_datetime_or_none(self):
+ naive_dt = datetime.datetime.now()
+ dt = timeutils.parse_isotime(timeutils.isotime(naive_dt))
+ self.assertEqual(utils.datetime_or_none(dt), dt)
+ self.assertEqual(utils.datetime_or_none(dt),
+ naive_dt.replace(tzinfo=iso8601.iso8601.Utc(),
+ microsecond=0))
+ self.assertEqual(utils.datetime_or_none(None), None)
+ self.assertRaises(ValueError, utils.datetime_or_none, 'foo')
+
+ def test_datetime_or_str_or_none(self):
+ dts = timeutils.isotime()
+ dt = timeutils.parse_isotime(dts)
+ self.assertEqual(utils.datetime_or_str_or_none(dt), dt)
+ self.assertEqual(utils.datetime_or_str_or_none(None), None)
+ self.assertEqual(utils.datetime_or_str_or_none(dts), dt)
+ self.assertRaises(ValueError, utils.datetime_or_str_or_none, 'foo')
+
+ def test_int_or_none(self):
+ self.assertEqual(utils.int_or_none(1), 1)
+ self.assertEqual(utils.int_or_none('1'), 1)
+ self.assertEqual(utils.int_or_none(None), None)
+ self.assertRaises(ValueError, utils.int_or_none, 'foo')
+
+ def test_str_or_none(self):
+ class Obj(object):
+ pass
+ self.assertEqual(utils.str_or_none('foo'), 'foo')
+ self.assertEqual(utils.str_or_none(1), '1')
+ self.assertEqual(utils.str_or_none(None), None)
+
+ def test_ip_or_none(self):
+ ip4 = netaddr.IPAddress('1.2.3.4', 4)
+ ip6 = netaddr.IPAddress('1::2', 6)
+ self.assertEqual(utils.ip_or_none(4)('1.2.3.4'), ip4)
+ self.assertEqual(utils.ip_or_none(6)('1::2'), ip6)
+ self.assertEqual(utils.ip_or_none(4)(None), None)
+ self.assertEqual(utils.ip_or_none(6)(None), None)
+ self.assertRaises(netaddr.AddrFormatError, utils.ip_or_none(4), 'foo')
+ self.assertRaises(netaddr.AddrFormatError, utils.ip_or_none(6), 'foo')
+
+ def test_dt_serializer(self):
+ class Obj(object):
+ foo = utils.dt_serializer('bar')
+
+ obj = Obj()
+ obj.bar = timeutils.parse_isotime('1955-11-05T00:00:00Z')
+ self.assertEqual(obj.foo(), '1955-11-05T00:00:00Z')
+ obj.bar = None
+ self.assertEqual(obj.foo(), None)
+ obj.bar = 'foo'
+ self.assertRaises(AttributeError, obj.foo)
+
+ def test_dt_deserializer(self):
+ dt = timeutils.parse_isotime('1955-11-05T00:00:00Z')
+ self.assertEqual(utils.dt_deserializer(None, timeutils.isotime(dt)),
+ dt)
+ self.assertEqual(utils.dt_deserializer(None, None), None)
+ self.assertRaises(ValueError, utils.dt_deserializer, None, 'foo')
+
+
+class _BaseTestCase(test.TestCase):
+ def setUp(self):
+ super(_BaseTestCase, self).setUp()
+ self.remote_object_calls = list()
+
+
+class _LocalTest(_BaseTestCase):
+ def setUp(self):
+ super(_LocalTest, self).setUp()
+ # Just in case
+ base.NovaObject.indirection_api = None
+
+ def assertRemotes(self):
+ self.assertEqual(self.remote_object_calls, [])
+
+
+@contextlib.contextmanager
+def things_temporarily_local():
+ # Temporarily go non-remote so the conductor handles
+ # this request directly
+ _api = base.NovaObject.indirection_api
+ base.NovaObject.indirection_api = None
+ yield
+ base.NovaObject.indirection_api = _api
+
+
+class _RemoteTest(_BaseTestCase):
+ def _testable_conductor(self):
+ self.conductor_service = self.start_service(
+ 'conductor', manager='nova.conductor.manager.ConductorManager')
+ self.remote_object_calls = list()
+
+ orig_object_class_action = \
+ self.conductor_service.manager.object_class_action
+ orig_object_action = \
+ self.conductor_service.manager.object_action
+
+ def fake_object_class_action(*args, **kwargs):
+ self.remote_object_calls.append((kwargs.get('objname'),
+ kwargs.get('objmethod')))
+ with things_temporarily_local():
+ result = orig_object_class_action(*args, **kwargs)
+ return result
+ self.stubs.Set(self.conductor_service.manager, 'object_class_action',
+ fake_object_class_action)
+
+ def fake_object_action(*args, **kwargs):
+ self.remote_object_calls.append((kwargs.get('objinst'),
+ kwargs.get('objmethod')))
+ with things_temporarily_local():
+ result = orig_object_action(*args, **kwargs)
+ return result
+ self.stubs.Set(self.conductor_service.manager, 'object_action',
+ fake_object_action)
+
+ # Things are remoted by default in this session
+ base.NovaObject.indirection_api = conductor_rpcapi.ConductorAPI()
+
+ def setUp(self):
+ super(_RemoteTest, self).setUp()
+ self._testable_conductor()
+
+ def assertRemotes(self):
+ self.assertNotEqual(self.remote_object_calls, [])
+
+
+class _TestObject(object):
+ def test_hydration_type_error(self):
+ primitive = {'nova_object.name': 'MyObj',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.5',
+ 'nova_object.data': {'foo': 'a'}}
+ self.assertRaises(ValueError, MyObj.obj_from_primitive, primitive)
+
+ def test_hydration(self):
+ primitive = {'nova_object.name': 'MyObj',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.5',
+ 'nova_object.data': {'foo': 1}}
+ obj = MyObj.obj_from_primitive(primitive)
+ self.assertEqual(obj.foo, 1)
+
+ def test_hydration_bad_ns(self):
+ primitive = {'nova_object.name': 'MyObj',
+ 'nova_object.namespace': 'foo',
+ 'nova_object.version': '1.5',
+ 'nova_object.data': {'foo': 1}}
+ self.assertRaises(exception.UnsupportedObjectError,
+ MyObj.obj_from_primitive, primitive)
+
+ def test_dehydration(self):
+ expected = {'nova_object.name': 'MyObj',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.5',
+ 'nova_object.data': {'foo': 1}}
+ obj = MyObj()
+ obj.foo = 1
+ obj.obj_reset_changes()
+ self.assertEqual(obj.obj_to_primitive(), expected)
+
+ def test_object_property(self):
+ obj = MyObj()
+ obj.foo = 1
+ self.assertEqual(obj.foo, 1)
+
+ def test_object_property_type_error(self):
+ obj = MyObj()
+
+ def fail():
+ obj.foo = 'a'
+ self.assertRaises(ValueError, fail)
+
+ def test_object_dict_syntax(self):
+ obj = MyObj()
+ obj.foo = 123
+ obj.bar = 'bar'
+ self.assertEqual(obj['foo'], 123)
+ self.assertEqual(sorted(obj.items(), key=lambda x: x[0]),
+ [('bar', 'bar'), ('foo', 123)])
+ self.assertEqual(sorted(list(obj.iteritems()), key=lambda x: x[0]),
+ [('bar', 'bar'), ('foo', 123)])
+
+ def test_load(self):
+ obj = MyObj()
+ self.assertEqual(obj.bar, 'loaded!')
+
+ def test_loaded_in_primitive(self):
+ obj = MyObj()
+ obj.foo = 1
+ obj.obj_reset_changes()
+ self.assertEqual(obj.bar, 'loaded!')
+ expected = {'nova_object.name': 'MyObj',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.5',
+ 'nova_object.changes': ['bar'],
+ 'nova_object.data': {'foo': 1,
+ 'bar': 'loaded!'}}
+ self.assertEqual(obj.obj_to_primitive(), expected)
+
+ def test_changes_in_primitive(self):
+ obj = MyObj()
+ obj.foo = 123
+ self.assertEqual(obj.obj_what_changed(), set(['foo']))
+ primitive = obj.obj_to_primitive()
+ self.assertTrue('nova_object.changes' in primitive)
+ obj2 = MyObj.obj_from_primitive(primitive)
+ self.assertEqual(obj2.obj_what_changed(), set(['foo']))
+ obj2.obj_reset_changes()
+ self.assertEqual(obj2.obj_what_changed(), set())
+
+ def test_unknown_objtype(self):
+ self.assertRaises(exception.UnsupportedObjectError,
+ base.NovaObject.obj_class_from_name, 'foo', '1.0')
+
+ def test_with_alternate_context(self):
+ ctxt1 = context.RequestContext('foo', 'foo')
+ ctxt2 = context.RequestContext('bar', 'alternate')
+ obj = MyObj.get(ctxt1)
+ obj.update_test(ctxt2)
+ self.assertEqual(obj.bar, 'alternate-context')
+ self.assertRemotes()
+
+ def test_orphaned_object(self):
+ ctxt = context.get_admin_context()
+ obj = MyObj.get(ctxt)
+ obj._context = None
+ self.assertRaises(exception.OrphanedObjectError,
+ obj.update_test)
+ self.assertRemotes()
+
+ def test_changed_1(self):
+ ctxt = context.get_admin_context()
+ obj = MyObj.get(ctxt)
+ obj.foo = 123
+ self.assertEqual(obj.obj_what_changed(), set(['foo']))
+ obj.update_test(ctxt)
+ self.assertEqual(obj.obj_what_changed(), set(['foo', 'bar']))
+ self.assertEqual(obj.foo, 123)
+ self.assertRemotes()
+
+ def test_changed_2(self):
+ ctxt = context.get_admin_context()
+ obj = MyObj.get(ctxt)
+ obj.foo = 123
+ self.assertEqual(obj.obj_what_changed(), set(['foo']))
+ obj.save(ctxt)
+ self.assertEqual(obj.obj_what_changed(), set([]))
+ self.assertEqual(obj.foo, 123)
+ self.assertRemotes()
+
+ def test_changed_3(self):
+ ctxt = context.get_admin_context()
+ obj = MyObj.get(ctxt)
+ obj.foo = 123
+ self.assertEqual(obj.obj_what_changed(), set(['foo']))
+ obj.refresh(ctxt)
+ self.assertEqual(obj.obj_what_changed(), set([]))
+ self.assertEqual(obj.foo, 321)
+ self.assertEqual(obj.bar, 'refreshed')
+ self.assertRemotes()
+
+ def test_changed_4(self):
+ ctxt = context.get_admin_context()
+ obj = MyObj.get(ctxt)
+ obj.bar = 'something'
+ self.assertEqual(obj.obj_what_changed(), set(['bar']))
+ obj.modify_save_modify(ctxt)
+ self.assertEqual(obj.obj_what_changed(), set(['foo']))
+ self.assertEqual(obj.foo, 42)
+ self.assertEqual(obj.bar, 'meow')
+ self.assertRemotes()
+
+ def test_static_result(self):
+ ctxt = context.get_admin_context()
+ obj = MyObj.get(ctxt)
+ self.assertEqual(obj.bar, 'bar')
+ result = obj.marco()
+ self.assertEqual(result, 'polo')
+ self.assertRemotes()
+
+ def test_updates(self):
+ ctxt = context.get_admin_context()
+ obj = MyObj.get(ctxt)
+ self.assertEqual(obj.foo, 1)
+ obj.update_test()
+ self.assertEqual(obj.bar, 'updated')
+ self.assertRemotes()
+
+ def test_base_attributes(self):
+ dt = datetime.datetime(1955, 11, 5)
+ obj = MyObj()
+ obj.created_at = dt
+ obj.updated_at = dt
+ obj.deleted_at = None
+ obj.deleted = False
+ expected = {'nova_object.name': 'MyObj',
+ 'nova_object.namespace': 'nova',
+ 'nova_object.version': '1.5',
+ 'nova_object.changes':
+ ['deleted', 'created_at', 'deleted_at', 'updated_at'],
+ 'nova_object.data':
+ {'created_at': timeutils.isotime(dt),
+ 'updated_at': timeutils.isotime(dt),
+ 'deleted_at': None,
+ 'deleted': False,
+ }
+ }
+ self.assertEqual(obj.obj_to_primitive(), expected)
+
+
+class TestObject(_LocalTest, _TestObject):
+ pass
+
+
+class TestRemoteObject(_RemoteTest, _TestObject):
+ def test_major_version_mismatch(self):
+ ctxt = context.get_admin_context()
+ MyObj2.version = '2.0'
+ self.assertRaises(exception.IncompatibleObjectVersion,
+ MyObj2.get, ctxt)
+
+ def test_minor_version_greater(self):
+ ctxt = context.get_admin_context()
+ MyObj2.version = '1.6'
+ self.assertRaises(exception.IncompatibleObjectVersion,
+ MyObj2.get, ctxt)
+
+ def test_minor_version_less(self):
+ ctxt = context.get_admin_context()
+ MyObj2.version = '1.2'
+ obj = MyObj2.get(ctxt)
+ self.assertEqual(obj.bar, 'bar')
+ self.assertRemotes()
+
+
+class TestObjectListBase(test.TestCase):
+ def test_list_like_operations(self):
+ class Foo(base.ObjectListBase, base.NovaObject):
+ pass
+
+ objlist = Foo()
+ objlist._context = 'foo'
+ objlist.objects = [1, 2, 3]
+ self.assertTrue(list(objlist), objlist.objects)
+ self.assertEqual(len(objlist), 3)
+ self.assertIn(2, objlist)
+ self.assertEqual(list(objlist[:1]), [1])
+ self.assertEqual(objlist[:1]._context, 'foo')
+ self.assertEqual(objlist[2], 3)
+ self.assertEqual(objlist.count(1), 1)
+ self.assertEqual(objlist.index(2), 1)
+
+ def test_serialization(self):
+ class Foo(base.ObjectListBase, base.NovaObject):
+ pass
+
+ class Bar(base.NovaObject):
+ fields = {'foo': str}
+
+ obj = Foo()
+ obj.objects = []
+ for i in 'abc':
+ bar = Bar()
+ bar.foo = i
+ obj.objects.append(bar)
+
+ obj2 = base.NovaObject.obj_from_primitive(obj.obj_to_primitive())
+ self.assertFalse(obj is obj2)
+ self.assertEqual([x.foo for x in obj],
+ [y.foo for y in obj2])
diff --git a/nova/tests/scheduler/fakes.py b/nova/tests/scheduler/fakes.py
index 024d37969..3dfc7c452 100644
--- a/nova/tests/scheduler/fakes.py
+++ b/nova/tests/scheduler/fakes.py
@@ -18,7 +18,6 @@ Fakes For Scheduler tests.
import mox
-from nova.compute import flavors
from nova.compute import vm_states
from nova import db
from nova.scheduler import filter_scheduler
@@ -107,14 +106,14 @@ class FakeHostState(host_manager.HostState):
class FakeInstance(object):
- def __init__(self, context=None, params=None, type_name='m1.tiny'):
+ def __init__(self, context=None, params=None):
"""Create a test instance. Returns uuid."""
self.context = context
- i = self._create_fake_instance(params, type_name=type_name)
+ i = self._create_fake_instance(params=params)
self.uuid = i['uuid']
- def _create_fake_instance(self, params=None, type_name='m1.tiny'):
+ def _create_fake_instance(self, params=None):
"""Create a test instance."""
if not params:
params = {}
@@ -123,11 +122,9 @@ class FakeInstance(object):
inst['vm_state'] = vm_states.ACTIVE
inst['image_ref'] = 1
inst['reservation_id'] = 'r-fakeres'
- inst['launch_time'] = '10'
inst['user_id'] = 'fake'
inst['project_id'] = 'fake'
- type_id = flavors.get_instance_type_by_name(type_name)['id']
- inst['instance_type_id'] = type_id
+ inst['instance_type_id'] = 2
inst['ami_launch_index'] = 0
inst.update(params)
return db.instance_create(self.context, inst)
diff --git a/nova/tests/scheduler/test_chance_scheduler.py b/nova/tests/scheduler/test_chance_scheduler.py
index a589000cd..8a281073a 100644
--- a/nova/tests/scheduler/test_chance_scheduler.py
+++ b/nova/tests/scheduler/test_chance_scheduler.py
@@ -194,3 +194,12 @@ class ChanceSchedulerTestCase(test_scheduler.SchedulerTestCase):
self.mox.ReplayAll()
hosts = self.driver.select_hosts(ctxt, request_spec, {})
self.assertEquals(['host3', 'host1'], hosts)
+
+ def test_select_hosts_no_valid_host(self):
+
+ def _return_no_host(*args, **kwargs):
+ return []
+
+ self.stubs.Set(self.driver, '_schedule', _return_no_host)
+ self.assertRaises(exception.NoValidHost,
+ self.driver.select_hosts, self.context, {}, {})
diff --git a/nova/tests/scheduler/test_filter_scheduler.py b/nova/tests/scheduler/test_filter_scheduler.py
index c8c04dc77..b82e079a4 100644
--- a/nova/tests/scheduler/test_filter_scheduler.py
+++ b/nova/tests/scheduler/test_filter_scheduler.py
@@ -18,7 +18,6 @@ Tests For Filter Scheduler.
import mox
-from nova.compute import flavors
from nova.compute import rpcapi as compute_rpcapi
from nova.compute import utils as compute_utils
from nova.compute import vm_states
@@ -78,6 +77,10 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
compute_utils.add_instance_fault_from_exc(fake_context,
mox.IsA(conductor_api.LocalAPI), new_ref,
mox.IsA(exception.NoValidHost), mox.IgnoreArg())
+
+ self.mox.StubOutWithMock(db, 'compute_node_get_all')
+ db.compute_node_get_all(mox.IgnoreArg()).AndReturn([])
+
self.mox.ReplayAll()
sched.schedule_run_instance(
fake_context, request_spec, None, None, None, None, {})
@@ -240,6 +243,10 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
request_spec = dict(instance_properties=instance_properties)
filter_properties = {}
+ self.mox.StubOutWithMock(db, 'compute_node_get_all')
+ db.compute_node_get_all(mox.IgnoreArg()).AndReturn([])
+ self.mox.ReplayAll()
+
sched._schedule(self.context, request_spec,
filter_properties=filter_properties)
@@ -255,6 +262,10 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
request_spec = dict(instance_properties=instance_properties)
filter_properties = {}
+ self.mox.StubOutWithMock(db, 'compute_node_get_all')
+ db.compute_node_get_all(mox.IgnoreArg()).AndReturn([])
+ self.mox.ReplayAll()
+
sched._schedule(self.context, request_spec,
filter_properties=filter_properties)
@@ -272,6 +283,10 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
retry = dict(num_attempts=1)
filter_properties = dict(retry=retry)
+ self.mox.StubOutWithMock(db, 'compute_node_get_all')
+ db.compute_node_get_all(mox.IgnoreArg()).AndReturn([])
+ self.mox.ReplayAll()
+
sched._schedule(self.context, request_spec,
filter_properties=filter_properties)
@@ -279,18 +294,27 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
self.assertEqual(2, num_attempts)
def test_retry_exceeded_max_attempts(self):
- # Test for necessary explosion when max retries is exceeded.
+ # Test for necessary explosion when max retries is exceeded and that
+ # the information needed in request_spec is still present for error
+ # handling
self.flags(scheduler_max_attempts=2)
sched = fakes.FakeFilterScheduler()
instance_properties = {'project_id': '12345', 'os_type': 'Linux'}
- request_spec = dict(instance_properties=instance_properties)
+ instance_uuids = ['fake-id']
+ request_spec = dict(instance_properties=instance_properties,
+ instance_uuids=instance_uuids)
retry = dict(num_attempts=2)
filter_properties = dict(retry=retry)
- self.assertRaises(exception.NoValidHost, sched._schedule, self.context,
- request_spec, filter_properties=filter_properties)
+ self.assertRaises(exception.NoValidHost, sched.schedule_run_instance,
+ self.context, request_spec, admin_password=None,
+ injected_files=None, requested_networks=None,
+ is_first_time=False,
+ filter_properties=filter_properties)
+ uuids = request_spec.get('instance_uuids')
+ self.assertEqual(uuids, instance_uuids)
def test_add_retry_host(self):
retry = dict(num_attempts=1, hosts=[])
@@ -326,10 +350,22 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
sched = fakes.FakeFilterScheduler()
image = 'image'
- instance = db.instance_create(self.context, {})
+ instance = {'disable_terminate': False,
+ 'uuid': 'fakeuuid',
+ 'deleted': 0, 'info_cache': {},
+ 'created_at': None,
+ 'system_metadata': [], 'shutdown_terminate': False,
+ 'id': 1, 'security_groups': [], 'metadata': []}
instance_properties = {'project_id': 'fake', 'os_type': 'Linux'}
- instance_type = flavors.get_instance_type_by_name("m1.tiny")
+ instance_type = {
+ 'memory_mb': 1024, 'root_gb': 40, 'deleted_at': None,
+ 'name': u'm1.medium', 'deleted': 0, 'created_at': None,
+ 'ephemeral_gb': 0, 'updated_at': None, 'disabled': False,
+ 'vcpus': 2, 'extra_specs': {}, 'swap': 0,
+ 'rxtx_factor': 1.0, 'is_public': True, 'flavorid': u'3',
+ 'vcpu_weight': None, 'id': 1}
+
request_spec = {'instance_properties': instance_properties,
'instance_type': instance_type}
retry = {'hosts': [], 'num_attempts': 1}
@@ -698,3 +734,12 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
hosts = sched.select_hosts(fake_context, request_spec, {})
self.assertEquals(len(hosts), 10)
self.assertEquals(hosts, selected_hosts)
+
+ def test_select_hosts_no_valid_host(self):
+
+ def _return_no_host(*args, **kwargs):
+ return []
+
+ self.stubs.Set(self.driver, '_schedule', _return_no_host)
+ self.assertRaises(exception.NoValidHost,
+ self.driver.select_hosts, self.context, {}, {})
diff --git a/nova/tests/test_filters.py b/nova/tests/scheduler/test_filters.py
index 3940ce0c3..c06b50fde 100644
--- a/nova/tests/test_filters.py
+++ b/nova/tests/scheduler/test_filters.py
@@ -123,3 +123,36 @@ class FiltersTestCase(test.TestCase):
filter_objs_initial,
filter_properties)
self.assertEqual(filter_objs_last, result)
+
+ def test_get_filtered_objects_none_response(self):
+ filter_objs_initial = ['initial', 'filter1', 'objects1']
+ filter_properties = 'fake_filter_properties'
+
+ def _fake_base_loader_init(*args, **kwargs):
+ pass
+
+ self.stubs.Set(loadables.BaseLoader, '__init__',
+ _fake_base_loader_init)
+
+ filt1_mock = self.mox.CreateMock(Filter1)
+ filt2_mock = self.mox.CreateMock(Filter2)
+
+ self.mox.StubOutWithMock(sys.modules[__name__], 'Filter1',
+ use_mock_anything=True)
+ self.mox.StubOutWithMock(filt1_mock, 'filter_all')
+ # Shouldn't be called.
+ self.mox.StubOutWithMock(sys.modules[__name__], 'Filter2',
+ use_mock_anything=True)
+ self.mox.StubOutWithMock(filt2_mock, 'filter_all')
+
+ Filter1().AndReturn(filt1_mock)
+ filt1_mock.filter_all(filter_objs_initial,
+ filter_properties).AndReturn(None)
+ self.mox.ReplayAll()
+
+ filter_handler = filters.BaseFilterHandler(filters.BaseFilter)
+ filter_classes = [Filter1, Filter2]
+ result = filter_handler.get_filtered_objects(filter_classes,
+ filter_objs_initial,
+ filter_properties)
+ self.assertEqual(None, result)
diff --git a/nova/tests/scheduler/test_host_filters.py b/nova/tests/scheduler/test_host_filters.py
index 7d7c12339..b09e23f1d 100644
--- a/nova/tests/scheduler/test_host_filters.py
+++ b/nova/tests/scheduler/test_host_filters.py
@@ -44,7 +44,7 @@ class TestBogusFilter(object):
pass
-class ExtraSpecsOpsTestCase(test.TestCase):
+class ExtraSpecsOpsTestCase(test.NoDBTestCase):
def _do_extra_specs_ops_test(self, value, req, matches):
assertion = self.assertTrue if matches else self.assertFalse
assertion(extra_specs_ops.match(value, req))
@@ -230,8 +230,11 @@ class ExtraSpecsOpsTestCase(test.TestCase):
matches=False)
-class HostFiltersTestCase(test.TestCase):
+class HostFiltersTestCase(test.NoDBTestCase):
"""Test case for host filters."""
+ # FIXME(sirp): These tests still require DB access until we can separate
+ # the testing of the DB API code from the host-filter code.
+ USES_DB = True
def fake_oat_request(self, *args, **kwargs):
"""Stubs out the response from OAT service."""
diff --git a/nova/tests/scheduler/test_host_manager.py b/nova/tests/scheduler/test_host_manager.py
index c03c66c4e..8db62bfea 100644
--- a/nova/tests/scheduler/test_host_manager.py
+++ b/nova/tests/scheduler/test_host_manager.py
@@ -37,7 +37,7 @@ class FakeFilterClass2(filters.BaseHostFilter):
pass
-class HostManagerTestCase(test.TestCase):
+class HostManagerTestCase(test.NoDBTestCase):
"""Test case for HostManager class."""
def setUp(self):
@@ -358,7 +358,7 @@ class HostManagerTestCase(test.TestCase):
8388608)
-class HostManagerChangedNodesTestCase(test.TestCase):
+class HostManagerChangedNodesTestCase(test.NoDBTestCase):
"""Test case for HostManager class."""
def setUp(self):
@@ -416,7 +416,7 @@ class HostManagerChangedNodesTestCase(test.TestCase):
self.assertEqual(len(host_states_map), 0)
-class HostStateTestCase(test.TestCase):
+class HostStateTestCase(test.NoDBTestCase):
"""Test case for HostState class."""
# update_from_compute_node() and consume_from_instance() are tested
diff --git a/nova/tests/scheduler/test_rpcapi.py b/nova/tests/scheduler/test_rpcapi.py
index 44e6a91b8..cecc55f20 100644
--- a/nova/tests/scheduler/test_rpcapi.py
+++ b/nova/tests/scheduler/test_rpcapi.py
@@ -28,7 +28,7 @@ from nova import test
CONF = cfg.CONF
-class SchedulerRpcAPITestCase(test.TestCase):
+class SchedulerRpcAPITestCase(test.NoDBTestCase):
def _test_scheduler_api(self, method, rpc_method, **kwargs):
ctxt = context.RequestContext('fake_user', 'fake_project')
rpcapi = scheduler_rpcapi.SchedulerAPI()
diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py
index f4f607647..5663f1378 100644
--- a/nova/tests/scheduler/test_scheduler.py
+++ b/nova/tests/scheduler/test_scheduler.py
@@ -48,7 +48,7 @@ from nova.tests.scheduler import fakes
from nova import utils
-class SchedulerManagerTestCase(test.TestCase):
+class SchedulerManagerTestCase(test.NoDBTestCase):
"""Test case for scheduler manager."""
manager_cls = manager.SchedulerManager
@@ -373,7 +373,7 @@ class SchedulerManagerTestCase(test.TestCase):
self.context, None, request)
-class SchedulerTestCase(test.TestCase):
+class SchedulerTestCase(test.NoDBTestCase):
"""Test case for base scheduler driver class."""
# So we can subclass this test and re-use tests if we need.
@@ -435,11 +435,15 @@ class SchedulerTestCase(test.TestCase):
self.assertEqual(result, ['host2'])
def _live_migration_instance(self):
- inst_type = flavors.get_instance_type(1)
- # NOTE(danms): we have _got_ to stop doing this!
- inst_type['memory_mb'] = 1024
+ inst_type = {'memory_mb': 1024, 'root_gb': 40, 'deleted_at': None,
+ 'name': u'm1.medium', 'deleted': 0, 'created_at': None,
+ 'ephemeral_gb': 0, 'updated_at': None, 'disabled': False,
+ 'vcpus': 2, 'extra_specs': {}, 'swap': 0,
+ 'rxtx_factor': 1.0, 'is_public': True, 'flavorid': u'3',
+ 'vcpu_weight': None, 'id': 1}
+
sys_meta = utils.dict_to_metadata(
- flavors.save_instance_type_info({}, inst_type))
+ flavors.save_flavor_info({}, inst_type))
return {'id': 31337,
'uuid': 'fake_uuid',
'name': 'fake-instance',
@@ -788,7 +792,7 @@ class SchedulerTestCase(test.TestCase):
# Confirm dest is picked by scheduler if not set.
self.mox.StubOutWithMock(self.driver, 'select_hosts')
- self.mox.StubOutWithMock(flavors, 'extract_instance_type')
+ self.mox.StubOutWithMock(flavors, 'extract_flavor')
request_spec = {'instance_properties': instance,
'instance_type': {},
@@ -799,7 +803,7 @@ class SchedulerTestCase(test.TestCase):
ignore_hosts = [instance['host']]
filter_properties = {'ignore_hosts': ignore_hosts}
- flavors.extract_instance_type(instance).AndReturn({})
+ flavors.extract_flavor(instance).AndReturn({})
self.driver.select_hosts(self.context, request_spec,
filter_properties).AndReturn(['fake_host2'])
@@ -814,7 +818,7 @@ class SchedulerTestCase(test.TestCase):
# Confirm dest is picked by scheduler if not set.
self.mox.StubOutWithMock(self.driver, 'select_hosts')
- self.mox.StubOutWithMock(flavors, 'extract_instance_type')
+ self.mox.StubOutWithMock(flavors, 'extract_flavor')
request_spec = {'instance_properties': instance,
'instance_type': {},
@@ -824,7 +828,7 @@ class SchedulerTestCase(test.TestCase):
ignore_hosts = [instance['host']]
filter_properties = {'ignore_hosts': ignore_hosts}
- flavors.extract_instance_type(instance).AndReturn({})
+ flavors.extract_flavor(instance).AndReturn({})
self.driver.select_hosts(self.context, request_spec,
filter_properties).AndReturn(['fake_host2'])
@@ -837,7 +841,7 @@ class SchedulerTestCase(test.TestCase):
instance = self._live_migration_instance()
# Confirm scheduler picks target host if none given.
- self.mox.StubOutWithMock(flavors, 'extract_instance_type')
+ self.mox.StubOutWithMock(flavors, 'extract_flavor')
self.mox.StubOutWithMock(self.driver, '_live_migration_src_check')
self.mox.StubOutWithMock(self.driver, 'select_hosts')
self.mox.StubOutWithMock(self.driver, '_live_migration_common_check')
@@ -856,7 +860,7 @@ class SchedulerTestCase(test.TestCase):
self.driver._live_migration_src_check(self.context, instance)
- flavors.extract_instance_type(
+ flavors.extract_flavor(
instance).MultipleTimes().AndReturn({})
# First selected host raises exception.InvalidHypervisorType
@@ -951,8 +955,12 @@ class SchedulerDriverBaseTestCase(SchedulerTestCase):
self.context, {},
fake_request_spec, {}, {}, {}, None)
+ def test_unimplemented_select_hosts(self):
+ self.assertRaises(NotImplementedError,
+ self.driver.select_hosts, self.context, {}, {})
+
-class SchedulerDriverModuleTestCase(test.TestCase):
+class SchedulerDriverModuleTestCase(test.NoDBTestCase):
"""Test case for scheduler driver module methods."""
def setUp(self):
diff --git a/nova/tests/scheduler/test_scheduler_options.py b/nova/tests/scheduler/test_scheduler_options.py
index df54cde5f..6ab245ef9 100644
--- a/nova/tests/scheduler/test_scheduler_options.py
+++ b/nova/tests/scheduler/test_scheduler_options.py
@@ -50,7 +50,7 @@ class FakeSchedulerOptions(scheduler_options.SchedulerOptions):
return self._time_now
-class SchedulerOptionsTestCase(test.TestCase):
+class SchedulerOptionsTestCase(test.NoDBTestCase):
def test_get_configuration_first_time_no_flag(self):
last_checked = None
now = datetime.datetime(2012, 1, 1, 1, 1, 1)
diff --git a/nova/tests/scheduler/test_weights.py b/nova/tests/scheduler/test_weights.py
index aa0f0c15f..7495edacc 100644
--- a/nova/tests/scheduler/test_weights.py
+++ b/nova/tests/scheduler/test_weights.py
@@ -23,7 +23,7 @@ from nova.tests import matchers
from nova.tests.scheduler import fakes
-class TestWeighedHost(test.TestCase):
+class TestWeighedHost(test.NoDBTestCase):
def test_dict_conversion(self):
host_state = fakes.FakeHostState('somehost', None, {})
host = weights.WeighedHost(host_state, 'someweight')
@@ -38,7 +38,7 @@ class TestWeighedHost(test.TestCase):
self.assertIn('RAMWeigher', class_names)
-class RamWeigherTestCase(test.TestCase):
+class RamWeigherTestCase(test.NoDBTestCase):
def setUp(self):
super(RamWeigherTestCase, self).setUp()
self.host_manager = fakes.FakeHostManager()
diff --git a/nova/tests/test_block_device.py b/nova/tests/test_block_device.py
index 8189057cb..716e7636d 100644
--- a/nova/tests/test_block_device.py
+++ b/nova/tests/test_block_device.py
@@ -20,7 +20,9 @@ Tests for Block Device utility functions.
"""
from nova import block_device
+from nova import exception
from nova import test
+from nova.tests import matchers
class BlockDeviceTestCase(test.TestCase):
@@ -126,3 +128,124 @@ class BlockDeviceTestCase(test.TestCase):
_assert_volume_in_mapping('sdf', True)
_assert_volume_in_mapping('sdg', False)
_assert_volume_in_mapping('sdh1', False)
+
+
+class TestBlockDeviceDict(test.TestCase):
+ def setUp(self):
+ super(TestBlockDeviceDict, self).setUp()
+
+ BDM = block_device.BlockDeviceDict
+
+ self.new_mapping = [
+ BDM({'id': 1, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sdb1',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'delete_on_termination': True,
+ 'guest_format': 'swap',
+ 'boot_index': -1}),
+ BDM({'id': 2, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sdc1',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'delete_on_termination': True,
+ 'boot_index': -1}),
+ BDM({'id': 3, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sda1',
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ 'volume_id': 'fake-folume-id-1',
+ 'connection_info': "{'fake': 'connection_info'}",
+ 'boot_index': -1}),
+ BDM({'id': 4, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sda2',
+ 'source_type': 'snapshot',
+ 'destination_type': 'volume',
+ 'connection_info': "{'fake': 'connection_info'}",
+ 'snapshot_id': 'fake-snapshot-id-1',
+ 'volume_id': 'fake-volume-id-2',
+ 'boot_index': -1}),
+ BDM({'id': 5, 'instance_uuid': 'fake-instance',
+ 'no_device': True,
+ 'device_name': '/dev/vdc'}),
+ ]
+
+ self.legacy_mapping = [
+ {'id': 1, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sdb1',
+ 'delete_on_termination': True,
+ 'virtual_name': 'swap'},
+ {'id': 2, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sdc1',
+ 'delete_on_termination': True,
+ 'virtual_name': 'ephemeral0'},
+ {'id': 3, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sda1',
+ 'volume_id': 'fake-folume-id-1',
+ 'connection_info': "{'fake': 'connection_info'}"},
+ {'id': 4, 'instance_uuid': 'fake-instance',
+ 'device_name': '/dev/sda2',
+ 'connection_info': "{'fake': 'connection_info'}",
+ 'snapshot_id': 'fake-snapshot-id-1',
+ 'volume_id': 'fake-volume-id-2'},
+ {'id': 5, 'instance_uuid': 'fake-instance',
+ 'no_device': True,
+ 'device_name': '/dev/vdc'},
+ ]
+
+ def test_init(self):
+ self.stubs.Set(block_device.BlockDeviceDict, '_fields',
+ set(['field1', 'field2']))
+ self.stubs.Set(block_device.BlockDeviceDict, '_db_only_fields',
+ set(['db_field1', 'db_field2']))
+
+ # Make sure db fields are not picked up if they are not
+ # in the original dict
+ dev_dict = block_device.BlockDeviceDict({'field1': 'foo',
+ 'field2': 'bar',
+ 'db_field1': 'baz'})
+ self.assertTrue('field1' in dev_dict)
+ self.assertTrue('field2' in dev_dict)
+ self.assertTrue('db_field1' in dev_dict)
+ self.assertFalse('db_field2'in dev_dict)
+
+ # Make sure all expected fields are defaulted
+ dev_dict = block_device.BlockDeviceDict({'field1': 'foo'})
+ self.assertTrue('field1' in dev_dict)
+ self.assertTrue('field2' in dev_dict)
+ self.assertTrue(dev_dict['field2'] is None)
+ self.assertFalse('db_field1' in dev_dict)
+ self.assertFalse('db_field2'in dev_dict)
+
+ # Unless they are not meant to be
+ dev_dict = block_device.BlockDeviceDict({'field1': 'foo'},
+ do_not_default=set(['field2']))
+ self.assertTrue('field1' in dev_dict)
+ self.assertFalse('field2' in dev_dict)
+ self.assertFalse('db_field1' in dev_dict)
+ self.assertFalse('db_field2'in dev_dict)
+
+ # Assert basic validation works
+ # NOTE (ndipanov): Move to separate test once we have
+ # more complex validations in place
+ self.assertRaises(exception.InvalidBDMFormat,
+ block_device.BlockDeviceDict,
+ {'field1': 'foo', 'bogus_field': 'lame_val'})
+
+ def test_from_legacy(self):
+ for legacy, new in zip(self.legacy_mapping, self.new_mapping):
+ self.assertThat(
+ block_device.BlockDeviceDict.from_legacy(legacy),
+ matchers.IsSubDictOf(new))
+
+ def test_legacy(self):
+ for legacy, new in zip(self.legacy_mapping, self.new_mapping):
+ self.assertThat(
+ legacy,
+ matchers.IsSubDictOf(new.legacy()))
+
+ def test_legacy_mapping(self):
+ got_legacy = block_device.legacy_mapping(self.new_mapping)
+
+ for legacy, expected in zip(got_legacy, self.legacy_mapping):
+ self.assertThat(expected, matchers.IsSubDictOf(legacy))
diff --git a/nova/tests/test_exception.py b/nova/tests/test_exception.py
index 040b56b13..10a877b8e 100644
--- a/nova/tests/test_exception.py
+++ b/nova/tests/test_exception.py
@@ -169,3 +169,17 @@ class NovaExceptionTestCase(test.TestCase):
self.flags(fatal_exception_format_errors=False)
exc = FakeNovaException_Remote(lame_arg='lame')
self.assertEquals(exc.format_message(), "some message %(somearg)s")
+
+
+class ExceptionTestCase(test.TestCase):
+ @staticmethod
+ def _raise_exc(exc):
+ raise exc()
+
+ def test_exceptions_raise(self):
+ # NOTE(dprince): disable format errors since we are not passing kwargs
+ self.flags(fatal_exception_format_errors=False)
+ for name in dir(exception):
+ exc = getattr(exception, name)
+ if isinstance(exc, type):
+ self.assertRaises(exc, self._raise_exc, exc)
diff --git a/nova/tests/test_instance_types.py b/nova/tests/test_flavors.py
index e20845f1d..bd3f805cd 100644
--- a/nova/tests/test_instance_types.py
+++ b/nova/tests/test_flavors.py
@@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
"""
-Unit Tests for instance types code
+Unit Tests for flavors code
"""
import time
@@ -27,12 +27,12 @@ from nova import test
class InstanceTypeTestCase(test.TestCase):
- """Test cases for instance type code."""
+ """Test cases for flavor code."""
def _generate_name(self):
"""return a name not in the DB."""
nonexistent_flavor = str(int(time.time()))
- flavors = flavors.get_all_types()
- while nonexistent_flavor in flavors:
+ all_flavors = flavors.get_all_flavors()
+ while nonexistent_flavor in all_flavors:
nonexistent_flavor += "z"
else:
return nonexistent_flavor
@@ -41,15 +41,15 @@ class InstanceTypeTestCase(test.TestCase):
"""return a flavorid not in the DB."""
nonexistent_flavor = 2700
flavor_ids = [value["id"] for key, value in
- flavors.get_all_types().iteritems()]
+ flavors.get_all_flavors().iteritems()]
while nonexistent_flavor in flavor_ids:
nonexistent_flavor += 1
else:
return nonexistent_flavor
def _existing_flavor(self):
- """return first instance type name."""
- return flavors.get_all_types().keys()[0]
+ """return first flavor name."""
+ return flavors.get_all_flavors().keys()[0]
def test_add_instance_type_access(self):
user_id = 'fake'
@@ -58,51 +58,51 @@ class InstanceTypeTestCase(test.TestCase):
flavor_id = 'flavor1'
type_ref = flavors.create('some flavor', 256, 1, 120, 100,
flavorid=flavor_id)
- access_ref = flavors.add_instance_type_access(flavor_id,
+ access_ref = flavors.add_flavor_access(flavor_id,
project_id,
ctxt=ctxt)
self.assertEqual(access_ref["project_id"], project_id)
self.assertEqual(access_ref["instance_type_id"], type_ref["id"])
- def test_add_instance_type_access_already_exists(self):
+ def test_add_flavor_access_already_exists(self):
user_id = 'fake'
project_id = 'fake'
ctxt = context.RequestContext(user_id, project_id, is_admin=True)
flavor_id = 'flavor1'
type_ref = flavors.create('some flavor', 256, 1, 120, 100,
flavorid=flavor_id)
- access_ref = flavors.add_instance_type_access(flavor_id,
+ access_ref = flavors.add_flavor_access(flavor_id,
project_id,
ctxt=ctxt)
self.assertRaises(exception.FlavorAccessExists,
- flavors.add_instance_type_access,
+ flavors.add_flavor_access,
flavor_id, project_id, ctxt)
- def test_add_instance_type_access_invalid_flavor(self):
+ def test_add_flavor_access_invalid_flavor(self):
user_id = 'fake'
project_id = 'fake'
ctxt = context.RequestContext(user_id, project_id, is_admin=True)
flavor_id = 'no_such_flavor'
self.assertRaises(exception.FlavorNotFound,
- flavors.add_instance_type_access,
+ flavors.add_flavor_access,
flavor_id, project_id, ctxt)
- def test_remove_instance_type_access(self):
+ def test_remove_flavor_access(self):
user_id = 'fake'
project_id = 'fake'
ctxt = context.RequestContext(user_id, project_id, is_admin=True)
flavor_id = 'flavor1'
type_ref = flavors.create('some flavor', 256, 1, 120, 100,
flavorid=flavor_id)
- access_ref = flavors.add_instance_type_access(flavor_id, project_id,
+ access_ref = flavors.add_flavor_access(flavor_id, project_id,
ctxt)
- flavors.remove_instance_type_access(flavor_id, project_id, ctxt)
+ flavors.remove_flavor_access(flavor_id, project_id, ctxt)
- projects = flavors.get_instance_type_access_by_flavor_id(flavor_id,
+ projects = flavors.get_flavor_access_by_flavor_id(flavor_id,
ctxt)
self.assertEqual([], projects)
- def test_remove_instance_type_access_doesnt_exists(self):
+ def test_remove_flavor_access_doesnt_exists(self):
user_id = 'fake'
project_id = 'fake'
ctxt = context.RequestContext(user_id, project_id, is_admin=True)
@@ -110,18 +110,18 @@ class InstanceTypeTestCase(test.TestCase):
type_ref = flavors.create('some flavor', 256, 1, 120, 100,
flavorid=flavor_id)
self.assertRaises(exception.FlavorAccessNotFound,
- flavors.remove_instance_type_access,
+ flavors.remove_flavor_access,
flavor_id, project_id, ctxt=ctxt)
def test_get_all_instance_types(self):
- # Ensures that all instance types can be retrieved.
+ # Ensures that all flavors can be retrieved.
session = sql_session.get_session()
total_instance_types = session.query(models.InstanceTypes).count()
- inst_types = flavors.get_all_types()
+ inst_types = flavors.get_all_flavors()
self.assertEqual(total_instance_types, len(inst_types))
def test_non_existent_inst_type_shouldnt_delete(self):
- # Ensures that instance type creation fails with invalid args.
+ # Ensures that flavor creation fails with invalid args.
self.assertRaises(exception.InstanceTypeNotFoundByName,
flavors.destroy,
'unknown_flavor')
@@ -132,52 +132,52 @@ class InstanceTypeTestCase(test.TestCase):
flavors.destroy, None)
def test_will_not_get_bad_default_instance_type(self):
- # ensures error raised on bad default instance type.
- self.flags(default_instance_type='unknown_flavor')
+ # ensures error raised on bad default flavor.
+ self.flags(default_flavor='unknown_flavor')
self.assertRaises(exception.InstanceTypeNotFound,
- flavors.get_default_instance_type)
+ flavors.get_default_flavor)
- def test_will_get_instance_type_by_id(self):
- default_instance_type = flavors.get_default_instance_type()
+ def test_will_get_flavor_by_id(self):
+ default_instance_type = flavors.get_default_flavor()
instance_type_id = default_instance_type['id']
- fetched = flavors.get_instance_type(instance_type_id)
+ fetched = flavors.get_flavor(instance_type_id)
self.assertEqual(default_instance_type, fetched)
- def test_will_not_get_instance_type_by_unknown_id(self):
+ def test_will_not_get_flavor_by_unknown_id(self):
# Ensure get by name returns default flavor with no name.
self.assertRaises(exception.InstanceTypeNotFound,
- flavors.get_instance_type, 10000)
+ flavors.get_flavor, 10000)
- def test_will_not_get_instance_type_with_bad_id(self):
+ def test_will_not_get_flavor_with_bad_id(self):
# Ensure get by name returns default flavor with bad name.
self.assertRaises(exception.InstanceTypeNotFound,
- flavors.get_instance_type, 'asdf')
+ flavors.get_flavor, 'asdf')
- def test_instance_type_get_by_None_name_returns_default(self):
+ def test_flavor_get_by_None_name_returns_default(self):
# Ensure get by name returns default flavor with no name.
- default = flavors.get_default_instance_type()
- actual = flavors.get_instance_type_by_name(None)
+ default = flavors.get_default_flavor()
+ actual = flavors.get_flavor_by_name(None)
self.assertEqual(default, actual)
- def test_will_not_get_instance_type_with_bad_name(self):
+ def test_will_not_get_flavor_with_bad_name(self):
# Ensure get by name returns default flavor with bad name.
self.assertRaises(exception.InstanceTypeNotFound,
- flavors.get_instance_type_by_name, 10000)
+ flavors.get_flavor_by_name, 10000)
def test_will_not_get_instance_by_unknown_flavor_id(self):
# Ensure get by flavor raises error with wrong flavorid.
self.assertRaises(exception.FlavorNotFound,
- flavors.get_instance_type_by_flavor_id,
+ flavors.get_flavor_by_flavor_id,
'unknown_flavor')
def test_will_get_instance_by_flavor_id(self):
- default_instance_type = flavors.get_default_instance_type()
+ default_instance_type = flavors.get_default_flavor()
flavorid = default_instance_type['flavorid']
- fetched = flavors.get_instance_type_by_flavor_id(flavorid)
+ fetched = flavors.get_flavor_by_flavor_id(flavorid)
self.assertEqual(default_instance_type, fetched)
def test_can_read_deleted_types_using_flavor_id(self):
- # Ensure deleted instance types can be read when querying flavor_id.
+ # Ensure deleted flavors can be read when querying flavor_id.
inst_type_name = "test"
inst_type_flavor_id = "test1"
@@ -186,16 +186,16 @@ class InstanceTypeTestCase(test.TestCase):
self.assertEqual(inst_type_name, inst_type["name"])
# NOTE(jk0): The deleted flavor will show up here because the context
- # in get_instance_type_by_flavor_id() is set to use read_deleted by
+ # in get_flavor_by_flavor_id() is set to use read_deleted by
# default.
flavors.destroy(inst_type["name"])
- deleted_inst_type = flavors.get_instance_type_by_flavor_id(
+ deleted_inst_type = flavors.get_flavor_by_flavor_id(
inst_type_flavor_id)
self.assertEqual(inst_type_name, deleted_inst_type["name"])
def test_read_deleted_false_converting_flavorid(self):
"""
- Ensure deleted instance types are not returned when not needed (for
+ Ensure deleted flavors are not returned when not needed (for
example when creating a server and attempting to translate from
flavorid to instance_type_id.
"""
@@ -203,7 +203,7 @@ class InstanceTypeTestCase(test.TestCase):
flavors.destroy("instance_type1")
flavors.create("instance_type1_redo", 256, 1, 120, 100, "test1")
- instance_type = flavors.get_instance_type_by_flavor_id(
+ instance_type = flavors.get_flavor_by_flavor_id(
"test1", read_deleted="no")
self.assertEqual("instance_type1_redo", instance_type["name"])
@@ -212,52 +212,52 @@ class InstanceTypeToolsTest(test.TestCase):
def _dict_to_metadata(self, data):
return [{'key': key, 'value': value} for key, value in data.items()]
- def _test_extract_instance_type(self, prefix):
- instance_type = flavors.get_default_instance_type()
+ def _test_extract_flavor(self, prefix):
+ instance_type = flavors.get_default_flavor()
metadata = {}
- flavors.save_instance_type_info(metadata, instance_type,
+ flavors.save_flavor_info(metadata, instance_type,
prefix)
instance = {'system_metadata': self._dict_to_metadata(metadata)}
- _instance_type = flavors.extract_instance_type(instance, prefix)
+ _instance_type = flavors.extract_flavor(instance, prefix)
- props = flavors.system_metadata_instance_type_props.keys()
+ props = flavors.system_metadata_flavor_props.keys()
for key in instance_type.keys():
if key not in props:
del instance_type[key]
self.assertEqual(instance_type, _instance_type)
- def test_extract_instance_type(self):
- self._test_extract_instance_type('')
+ def test_extract_flavor(self):
+ self._test_extract_flavor('')
- def test_extract_instance_type_prefix(self):
- self._test_extract_instance_type('foo_')
+ def test_extract_flavor_prefix(self):
+ self._test_extract_flavor('foo_')
- def test_save_instance_type_info(self):
- instance_type = flavors.get_default_instance_type()
+ def test_save_flavor_info(self):
+ instance_type = flavors.get_default_flavor()
example = {}
example_prefix = {}
- for key in flavors.system_metadata_instance_type_props.keys():
+ for key in flavors.system_metadata_flavor_props.keys():
example['instance_type_%s' % key] = instance_type[key]
example_prefix['fooinstance_type_%s' % key] = instance_type[key]
metadata = {}
- flavors.save_instance_type_info(metadata, instance_type)
+ flavors.save_flavor_info(metadata, instance_type)
self.assertEqual(example, metadata)
metadata = {}
- flavors.save_instance_type_info(metadata, instance_type, 'foo')
+ flavors.save_flavor_info(metadata, instance_type, 'foo')
self.assertEqual(example_prefix, metadata)
- def test_delete_instance_type_info(self):
- instance_type = flavors.get_default_instance_type()
+ def test_delete_flavor_info(self):
+ instance_type = flavors.get_default_flavor()
metadata = {}
- flavors.save_instance_type_info(metadata, instance_type)
- flavors.save_instance_type_info(metadata, instance_type, '_')
- flavors.delete_instance_type_info(metadata, '', '_')
+ flavors.save_flavor_info(metadata, instance_type)
+ flavors.save_flavor_info(metadata, instance_type, '_')
+ flavors.delete_flavor_info(metadata, '', '_')
self.assertEqual(metadata, {})
@@ -391,7 +391,7 @@ class CreateInstanceTypeTest(test.TestCase):
def test_basic_create(self):
# Ensure instance types can be created.
- original_list = flavors.get_all_types()
+ original_list = flavors.get_all_flavors()
# Create new type and make sure values stick
flavor = flavors.create('flavor', 64, 1, 120)
@@ -401,26 +401,26 @@ class CreateInstanceTypeTest(test.TestCase):
self.assertEqual(flavor['root_gb'], 120)
# Ensure new type shows up in list
- new_list = flavors.get_all_types()
+ new_list = flavors.get_all_flavors()
self.assertNotEqual(len(original_list), len(new_list),
'flavor was not created')
def test_create_then_delete(self):
- original_list = flavors.get_all_types()
+ original_list = flavors.get_all_flavors()
flavor = flavors.create('flavor', 64, 1, 120)
# Ensure new type shows up in list
- new_list = flavors.get_all_types()
+ new_list = flavors.get_all_flavors()
self.assertNotEqual(len(original_list), len(new_list),
'instance type was not created')
flavors.destroy('flavor')
self.assertRaises(exception.InstanceTypeNotFound,
- flavors.get_instance_type, flavor['id'])
+ flavors.get_flavor, flavor['id'])
# Deleted instance should not be in list anymore
- new_list = flavors.get_all_types()
+ new_list = flavors.get_all_flavors()
self.assertEqual(original_list, new_list)
def test_duplicate_names_fail(self):
diff --git a/nova/tests/test_linuxscsi.py b/nova/tests/test_linuxscsi.py
index 7f66974d0..8c098a846 100644
--- a/nova/tests/test_linuxscsi.py
+++ b/nova/tests/test_linuxscsi.py
@@ -38,16 +38,25 @@ class StorageLinuxSCSITestCase(test.TestCase):
self.stubs.Set(utils, 'execute', fake_execute)
- def test_find_multipath_device(self):
+ def test_find_multipath_device_3par(self):
def fake_execute(*cmd, **kwargs):
out = ("mpath6 (350002ac20398383d) dm-3 3PARdata,VV\n"
"size=2.0G features='0' hwhandler='0' wp=rw\n"
"`-+- policy='round-robin 0' prio=-1 status=active\n"
- " |- 0:0:0:1 sde 8:64 active undef running\n"
+ " |- 0:0:0:1 sde 8:64 active undef running\n"
" `- 2:0:0:1 sdf 8:80 active undef running\n"
)
return out, None
+ def fake_execute2(*cmd, **kwargs):
+ out = ("350002ac20398383d dm-3 3PARdata,VV\n"
+ "size=2.0G features='0' hwhandler='0' wp=rw\n"
+ "`-+- policy='round-robin 0' prio=-1 status=active\n"
+ " |- 0:0:0:1 sde 8:64 active undef running\n"
+ " `- 2:0:0:1 sdf 8:80 active undef running\n"
+ )
+ return out, None
+
self.stubs.Set(utils, 'execute', fake_execute)
info = linuxscsi.find_multipath_device('/dev/sde')
@@ -64,3 +73,62 @@ class StorageLinuxSCSITestCase(test.TestCase):
self.assertEqual("0", info['devices'][1]['id'])
self.assertEqual("0", info['devices'][1]['channel'])
self.assertEqual("1", info['devices'][1]['lun'])
+
+ def test_find_multipath_device_svc(self):
+ def fake_execute(*cmd, **kwargs):
+ out = ("36005076da00638089c000000000004d5 dm-2 IBM,2145\n"
+ "size=954M features='1 queue_if_no_path' hwhandler='0'"
+ " wp=rw\n"
+ "|-+- policy='round-robin 0' prio=-1 status=active\n"
+ "| |- 6:0:2:0 sde 8:64 active undef running\n"
+ "| `- 6:0:4:0 sdg 8:96 active undef running\n"
+ "`-+- policy='round-robin 0' prio=-1 status=enabled\n"
+ " |- 6:0:3:0 sdf 8:80 active undef running\n"
+ " `- 6:0:5:0 sdh 8:112 active undef running\n"
+ )
+ return out, None
+
+ self.stubs.Set(utils, 'execute', fake_execute)
+
+ info = linuxscsi.find_multipath_device('/dev/sde')
+ LOG.error("info = %s" % info)
+ self.assertEqual("/dev/dm-2", info["device"])
+ self.assertEqual("/dev/sde", info['devices'][0]['device'])
+ self.assertEqual("6", info['devices'][0]['host'])
+ self.assertEqual("0", info['devices'][0]['channel'])
+ self.assertEqual("2", info['devices'][0]['id'])
+ self.assertEqual("0", info['devices'][0]['lun'])
+
+ self.assertEqual("/dev/sdf", info['devices'][2]['device'])
+ self.assertEqual("6", info['devices'][2]['host'])
+ self.assertEqual("0", info['devices'][2]['channel'])
+ self.assertEqual("3", info['devices'][2]['id'])
+ self.assertEqual("0", info['devices'][2]['lun'])
+
+ def test_find_multipath_device_ds8000(self):
+ def fake_execute(*cmd, **kwargs):
+ out = ("36005076303ffc48e0000000000000101 dm-2 IBM,2107900\n"
+ "size=1.0G features='1 queue_if_no_path' hwhandler='0'"
+ " wp=rw\n"
+ "`-+- policy='round-robin 0' prio=-1 status=active\n"
+ " |- 6:0:2:0 sdd 8:64 active undef running\n"
+ " `- 6:1:0:3 sdc 8:32 active undef running\n"
+ )
+ return out, None
+
+ self.stubs.Set(utils, 'execute', fake_execute)
+
+ info = linuxscsi.find_multipath_device('/dev/sdd')
+ LOG.error("info = %s" % info)
+ self.assertEqual("/dev/dm-2", info["device"])
+ self.assertEqual("/dev/sdd", info['devices'][0]['device'])
+ self.assertEqual("6", info['devices'][0]['host'])
+ self.assertEqual("0", info['devices'][0]['channel'])
+ self.assertEqual("2", info['devices'][0]['id'])
+ self.assertEqual("0", info['devices'][0]['lun'])
+
+ self.assertEqual("/dev/sdc", info['devices'][1]['device'])
+ self.assertEqual("6", info['devices'][1]['host'])
+ self.assertEqual("1", info['devices'][1]['channel'])
+ self.assertEqual("0", info['devices'][1]['id'])
+ self.assertEqual("3", info['devices'][1]['lun'])
diff --git a/nova/tests/test_manager.py b/nova/tests/test_manager.py
new file mode 100644
index 000000000..7faac8608
--- /dev/null
+++ b/nova/tests/test_manager.py
@@ -0,0 +1,35 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright (C) 2013, Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Unit Tests for nova.manager
+"""
+
+from nova import manager
+from nova import test
+
+
+class ManagerTestCase(test.TestCase):
+ def test_additional_apis_for_dispatcher(self):
+ class MyAPI(object):
+ pass
+
+ m = manager.Manager()
+ api = MyAPI()
+ dispatch = m.create_rpc_dispatcher(additional_apis=[api])
+
+ self.assertEqual(len(dispatch.callbacks), 3)
+ self.assertTrue(api in dispatch.callbacks)
diff --git a/nova/tests/test_metadata.py b/nova/tests/test_metadata.py
index 86d618930..8cdc3e7af 100644
--- a/nova/tests/test_metadata.py
+++ b/nova/tests/test_metadata.py
@@ -77,8 +77,8 @@ INSTANCES = (
def get_default_sys_meta():
return utils.dict_to_metadata(
- flavors.save_instance_type_info(
- {}, flavors.get_default_instance_type()))
+ flavors.save_flavor_info(
+ {}, flavors.get_default_flavor()))
def return_non_existing_address(*args, **kwarg):
@@ -188,19 +188,24 @@ class MetadataTestCase(test.TestCase):
return [{'volume_id': 87654321,
'snapshot_id': None,
'no_device': None,
- 'virtual_name': None,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
'delete_on_termination': True,
'device_name': '/dev/sdh'},
{'volume_id': None,
'snapshot_id': None,
'no_device': None,
- 'virtual_name': 'swap',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'guest_format': 'swap',
'delete_on_termination': None,
'device_name': '/dev/sdc'},
{'volume_id': None,
'snapshot_id': None,
'no_device': None,
- 'virtual_name': 'ephemeral0',
+ 'source_type': 'blank',
+ 'destination_type': 'local',
+ 'guest_format': None,
'delete_on_termination': None,
'device_name': '/dev/sdb'}]
@@ -214,6 +219,7 @@ class MetadataTestCase(test.TestCase):
'ebs0': '/dev/sdh'}
capi = conductor_api.LocalAPI()
+
self.assertEqual(base._format_instance_mapping(capi, ctxt,
instance_ref0), block_device._DEFAULT_MAPPINGS)
self.assertEqual(base._format_instance_mapping(capi, ctxt,
diff --git a/nova/tests/test_misc.py b/nova/tests/test_misc.py
deleted file mode 100644
index 6744a2a6a..000000000
--- a/nova/tests/test_misc.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# vim: tabstop=4 shiftwidth=4 softtabstop=4
-
-# Copyright 2010 OpenStack Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-import glob
-import os
-
-from nova import exception
-from nova import test
-
-
-class ExceptionTestCase(test.TestCase):
- @staticmethod
- def _raise_exc(exc):
- raise exc()
-
- def test_exceptions_raise(self):
- # NOTE(dprince): disable format errors since we are not passing kwargs
- self.flags(fatal_exception_format_errors=False)
- for name in dir(exception):
- exc = getattr(exception, name)
- if isinstance(exc, type):
- self.assertRaises(exc, self._raise_exc, exc)
-
-
-class ProjectTestCase(test.TestCase):
-
- def test_all_migrations_have_downgrade(self):
- topdir = os.path.normpath(os.path.dirname(__file__) + '/../../')
- py_glob = os.path.join(topdir, "nova", "db", "sqlalchemy",
- "migrate_repo", "versions", "*.py")
- missing_downgrade = []
- for path in glob.iglob(py_glob):
- has_upgrade = False
- has_downgrade = False
- with open(path, "r") as f:
- for line in f:
- if 'def upgrade(' in line:
- has_upgrade = True
- if 'def downgrade(' in line:
- has_downgrade = True
-
- if has_upgrade and not has_downgrade:
- fname = os.path.basename(path)
- missing_downgrade.append(fname)
-
- helpful_msg = (_("The following migrations are missing a downgrade:"
- "\n\t%s") % '\n\t'.join(sorted(missing_downgrade)))
- self.assert_(not missing_downgrade, helpful_msg)
diff --git a/nova/tests/test_notifications.py b/nova/tests/test_notifications.py
index 0d2108557..23fe4c82b 100644
--- a/nova/tests/test_notifications.py
+++ b/nova/tests/test_notifications.py
@@ -69,8 +69,8 @@ class NotificationsTestCase(test.TestCase):
self.instance = self._wrapped_create()
def _wrapped_create(self, params=None):
- instance_type = flavors.get_instance_type_by_name('m1.tiny')
- sys_meta = flavors.save_instance_type_info({}, instance_type)
+ instance_type = flavors.get_flavor_by_name('m1.tiny')
+ sys_meta = flavors.save_flavor_info({}, instance_type)
inst = {}
inst['image_ref'] = 1
inst['user_id'] = self.user_id
@@ -82,6 +82,7 @@ class NotificationsTestCase(test.TestCase):
inst['access_ip_v6'] = 'feed:5eed'
inst['display_name'] = 'test_instance'
inst['hostname'] = 'test_instance_hostname'
+ inst['node'] = 'test_instance_node'
inst['system_metadata'] = sys_meta
if params:
inst.update(params)
@@ -98,7 +99,7 @@ class NotificationsTestCase(test.TestCase):
try:
# Get a real exception with a call stack.
raise test.TestingException("junk")
- except test.TestingException, e:
+ except test.TestingException as e:
exception = e
notifications.send_api_fault("http://example.com/foo", 500, exception)
@@ -211,6 +212,7 @@ class NotificationsTestCase(test.TestCase):
access_ip_v6 = self.instance["access_ip_v6"]
display_name = self.instance["display_name"]
hostname = self.instance["hostname"]
+ node = self.instance["node"]
self.assertEquals(vm_states.BUILDING, payload["old_state"])
self.assertEquals(vm_states.ACTIVE, payload["state"])
@@ -220,6 +222,7 @@ class NotificationsTestCase(test.TestCase):
self.assertEquals(payload["access_ip_v6"], access_ip_v6)
self.assertEquals(payload["display_name"], display_name)
self.assertEquals(payload["hostname"], hostname)
+ self.assertEquals(payload["node"], node)
def test_task_update_with_states(self):
self.flags(notify_on_state_change="vm_and_task_state")
diff --git a/nova/tests/test_quota.py b/nova/tests/test_quota.py
index 30f823ace..c4c6b93ca 100644
--- a/nova/tests/test_quota.py
+++ b/nova/tests/test_quota.py
@@ -95,7 +95,7 @@ class QuotaIntegrationTestCase(test.TestCase):
for i in range(CONF.quota_instances):
instance = self._create_instance()
instance_uuids.append(instance['uuid'])
- inst_type = flavors.get_instance_type_by_name('m1.small')
+ inst_type = flavors.get_flavor_by_name('m1.small')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
self.assertRaises(exception.QuotaError, compute.API().create,
self.context,
@@ -108,7 +108,7 @@ class QuotaIntegrationTestCase(test.TestCase):
def test_too_many_cores(self):
instance = self._create_instance(cores=4)
- inst_type = flavors.get_instance_type_by_name('m1.small')
+ inst_type = flavors.get_flavor_by_name('m1.small')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
self.assertRaises(exception.QuotaError, compute.API().create,
self.context,
@@ -146,7 +146,7 @@ class QuotaIntegrationTestCase(test.TestCase):
metadata = {}
for i in range(CONF.quota_metadata_items + 1):
metadata['key%s' % i] = 'value%s' % i
- inst_type = flavors.get_instance_type_by_name('m1.small')
+ inst_type = flavors.get_flavor_by_name('m1.small')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
self.assertRaises(exception.QuotaError, compute.API().create,
self.context,
@@ -158,7 +158,7 @@ class QuotaIntegrationTestCase(test.TestCase):
def _create_with_injected_files(self, files):
api = compute.API()
- inst_type = flavors.get_instance_type_by_name('m1.small')
+ inst_type = flavors.get_flavor_by_name('m1.small')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
api.create(self.context, min_count=1, max_count=1,
instance_type=inst_type, image_href=image_uuid,
@@ -166,7 +166,7 @@ class QuotaIntegrationTestCase(test.TestCase):
def test_no_injected_files(self):
api = compute.API()
- inst_type = flavors.get_instance_type_by_name('m1.small')
+ inst_type = flavors.get_flavor_by_name('m1.small')
image_uuid = 'cedef40a-ed67-4d10-800e-17455edce175'
api.create(self.context,
instance_type=inst_type,
diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py
index a2abedda8..f400bb899 100644
--- a/nova/tests/test_utils.py
+++ b/nova/tests/test_utils.py
@@ -325,7 +325,7 @@ class GenericUtilsTestCase(test.TestCase):
def test_read_file_as_root(self):
def fake_execute(*args, **kwargs):
if args[1] == 'bad':
- raise processutils.ProcessExecutionError
+ raise processutils.ProcessExecutionError()
return 'fakecontents', None
self.stubs.Set(utils, 'execute', fake_execute)
diff --git a/nova/tests/utils.py b/nova/tests/utils.py
index 3d429aada..75b4eab73 100644
--- a/nova/tests/utils.py
+++ b/nova/tests/utils.py
@@ -58,7 +58,7 @@ def get_test_instance_type(context=None):
try:
instance_type_ref = nova.db.instance_type_create(context,
test_instance_type)
- except exception.InstanceTypeExists:
+ except (exception.InstanceTypeExists, exception.InstanceTypeIdExists):
instance_type_ref = nova.db.instance_type_get_by_name(context,
'kinda.big')
return instance_type_ref
@@ -72,7 +72,7 @@ def get_test_instance(context=None, instance_type=None):
instance_type = get_test_instance_type(context)
metadata = {}
- flavors.save_instance_type_info(metadata, instance_type, '')
+ flavors.save_flavor_info(metadata, instance_type, '')
test_instance = {'memory_kb': '2048000',
'basepath': '/some/path',
diff --git a/nova/tests/hyperv/__init__.py b/nova/tests/virt/hyperv/__init__.py
index 090fc0639..090fc0639 100644
--- a/nova/tests/hyperv/__init__.py
+++ b/nova/tests/virt/hyperv/__init__.py
diff --git a/nova/tests/hyperv/db_fakes.py b/nova/tests/virt/hyperv/db_fakes.py
index 5152bd035..77f98d36c 100644
--- a/nova/tests/hyperv/db_fakes.py
+++ b/nova/tests/virt/hyperv/db_fakes.py
@@ -18,7 +18,6 @@
Stubouts, mocks and fixtures for the test suite
"""
-import time
import uuid
from nova.compute import task_states
@@ -145,7 +144,6 @@ def stub_out_db_instance_api(stubs):
'task_state': task_states.SCHEDULING,
'user_id': values['user_id'],
'project_id': values['project_id'],
- 'launch_time': time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime()),
'instance_type': instance_type,
'memory_mb': instance_type['memory_mb'],
'vcpus': instance_type['vcpus'],
diff --git a/nova/tests/hyperv/fake.py b/nova/tests/virt/hyperv/fake.py
index e0e5a6bbe..e0e5a6bbe 100644
--- a/nova/tests/hyperv/fake.py
+++ b/nova/tests/virt/hyperv/fake.py
diff --git a/nova/tests/test_hypervapi.py b/nova/tests/virt/hyperv/test_hypervapi.py
index 82fcfb059..cfc79c388 100644
--- a/nova/tests/test_hypervapi.py
+++ b/nova/tests/virt/hyperv/test_hypervapi.py
@@ -36,10 +36,10 @@ from nova import db
from nova.image import glance
from nova import test
from nova.tests import fake_network
-from nova.tests.hyperv import db_fakes
-from nova.tests.hyperv import fake
from nova.tests.image import fake as fake_image
from nova.tests import matchers
+from nova.tests.virt.hyperv import db_fakes
+from nova.tests.virt.hyperv import fake
from nova import utils
from nova.virt import configdrive
from nova.virt import driver
@@ -1159,7 +1159,7 @@ class HyperVAPITestCase(test.TestCase):
instance_type, network_info)
self._mox.VerifyAll()
- def test_finish_migration(self):
+ def _test_finish_migration(self, power_on):
self._instance_data = self._get_instance_data()
instance = db.instance_create(self._context, self._instance_data)
instance['system_metadata'] = {}
@@ -1198,14 +1198,21 @@ class HyperVAPITestCase(test.TestCase):
self._set_vm_name(instance['name'])
self._setup_create_instance_mocks(None, False)
- vmutils.VMUtils.set_vm_state(mox.Func(self._check_instance_name),
- constants.HYPERV_VM_STATE_ENABLED)
+ if power_on:
+ vmutils.VMUtils.set_vm_state(mox.Func(self._check_instance_name),
+ constants.HYPERV_VM_STATE_ENABLED)
self._mox.ReplayAll()
self._conn.finish_migration(self._context, None, instance, "",
- network_info, None, False, None)
+ network_info, None, False, None, power_on)
self._mox.VerifyAll()
+ def test_finish_migration_power_on(self):
+ self._test_finish_migration(True)
+
+ def test_finish_migration_power_off(self):
+ self._test_finish_migration(False)
+
def test_confirm_migration(self):
self._instance_data = self._get_instance_data()
instance = db.instance_create(self._context, self._instance_data)
@@ -1218,7 +1225,7 @@ class HyperVAPITestCase(test.TestCase):
self._conn.confirm_migration(None, instance, network_info)
self._mox.VerifyAll()
- def test_finish_revert_migration(self):
+ def _test_finish_revert_migration(self, power_on):
self._instance_data = self._get_instance_data()
instance = db.instance_create(self._context, self._instance_data)
network_info = fake_network.fake_get_instance_nw_info(
@@ -1246,9 +1253,17 @@ class HyperVAPITestCase(test.TestCase):
self._set_vm_name(instance['name'])
self._setup_create_instance_mocks(None, False)
- vmutils.VMUtils.set_vm_state(mox.Func(self._check_instance_name),
- constants.HYPERV_VM_STATE_ENABLED)
+ if power_on:
+ vmutils.VMUtils.set_vm_state(mox.Func(self._check_instance_name),
+ constants.HYPERV_VM_STATE_ENABLED)
self._mox.ReplayAll()
- self._conn.finish_revert_migration(instance, network_info, None)
+ self._conn.finish_revert_migration(instance, network_info, None,
+ power_on)
self._mox.VerifyAll()
+
+ def test_finish_revert_migration_power_on(self):
+ self._test_finish_revert_migration(True)
+
+ def test_finish_revert_migration_power_off(self):
+ self._test_finish_revert_migration(False)
diff --git a/nova/tests/virt/libvirt/fake_libvirt_utils.py b/nova/tests/virt/libvirt/fake_libvirt_utils.py
index ba00a7091..23b758e03 100644
--- a/nova/tests/virt/libvirt/fake_libvirt_utils.py
+++ b/nova/tests/virt/libvirt/fake_libvirt_utils.py
@@ -197,8 +197,9 @@ def fetch_image(context, target, image_id, user_id, project_id):
pass
-def get_instance_path(instance, forceold=False):
- return libvirt_utils.get_instance_path(instance, forceold=forceold)
+def get_instance_path(instance, forceold=False, relative=False):
+ return libvirt_utils.get_instance_path(instance, forceold=forceold,
+ relative=relative)
def pick_disk_driver_name(is_block_dev=False):
diff --git a/nova/tests/virt/libvirt/fakelibvirt.py b/nova/tests/virt/libvirt/fakelibvirt.py
index 30c3e4d9c..9594757a8 100644
--- a/nova/tests/virt/libvirt/fakelibvirt.py
+++ b/nova/tests/virt/libvirt/fakelibvirt.py
@@ -914,6 +914,10 @@ def virEventRegisterDefaultImpl():
pass
+def registerErrorHandler(handler, ctxt):
+ pass
+
+
virDomain = Domain
diff --git a/nova/tests/virt/libvirt/test_fakelibvirt.py b/nova/tests/virt/libvirt/test_fakelibvirt.py
index 52183ab5f..8fa2ffc63 100644
--- a/nova/tests/virt/libvirt/test_fakelibvirt.py
+++ b/nova/tests/virt/libvirt/test_fakelibvirt.py
@@ -136,7 +136,7 @@ class FakeLibvirtTests(test.TestCase):
conn = self.get_openAuth_curry_func()('qemu:///system')
try:
getattr(conn, xmlfunc_name)("this is not valid </xml>", *args)
- except libvirt.libvirtError, e:
+ except libvirt.libvirtError as e:
self.assertEqual(e.get_error_code(), libvirt.VIR_ERR_XML_DETAIL)
self.assertEqual(e.get_error_domain(), libvirt.VIR_FROM_DOMAIN)
return
@@ -242,7 +242,7 @@ class FakeLibvirtTests(test.TestCase):
dom_id = conn.listDomainsID()[0]
try:
conn.lookupByID(dom_id + 1)
- except libvirt.libvirtError, e:
+ except libvirt.libvirtError as e:
self.assertEqual(e.get_error_code(), libvirt.VIR_ERR_NO_DOMAIN)
self.assertEqual(e.get_error_domain(), libvirt.VIR_FROM_QEMU)
return
@@ -315,7 +315,7 @@ class FakeLibvirtTests(test.TestCase):
nwfilter.undefine()
try:
conn.nwfilterLookupByName('nova-instance-instance-789320334')
- except libvirt.libvirtError, e:
+ except libvirt.libvirtError as e:
self.assertEqual(e.get_error_code(), libvirt.VIR_ERR_NO_NWFILTER)
self.assertEqual(e.get_error_domain(), libvirt.VIR_FROM_NWFILTER)
return
diff --git a/nova/tests/test_image_utils.py b/nova/tests/virt/libvirt/test_image_utils.py
index a9768f821..a9768f821 100644
--- a/nova/tests/test_image_utils.py
+++ b/nova/tests/virt/libvirt/test_image_utils.py
diff --git a/nova/tests/virt/libvirt/test_imagebackend.py b/nova/tests/virt/libvirt/test_imagebackend.py
index 6548ab76c..fa708f4f4 100644
--- a/nova/tests/virt/libvirt/test_imagebackend.py
+++ b/nova/tests/virt/libvirt/test_imagebackend.py
@@ -258,6 +258,7 @@ class Qcow2TestCase(_ImageTestCase, test.TestCase):
if self.OLD_STYLE_INSTANCE_PATH:
os.path.exists(self.OLD_STYLE_INSTANCE_PATH).AndReturn(False)
os.path.exists(self.TEMPLATE_PATH).AndReturn(False)
+ os.path.exists(self.PATH).AndReturn(False)
imagebackend.disk.get_disk_size(self.TEMPLATE_PATH
).AndReturn(self.SIZE)
os.path.exists(self.PATH).AndReturn(False)
@@ -279,13 +280,43 @@ class Qcow2TestCase(_ImageTestCase, test.TestCase):
if self.OLD_STYLE_INSTANCE_PATH:
os.path.exists(self.OLD_STYLE_INSTANCE_PATH).AndReturn(False)
os.path.exists(self.TEMPLATE_PATH).AndReturn(False)
+ os.path.exists(self.PATH).AndReturn(False)
imagebackend.disk.get_disk_size(self.TEMPLATE_PATH
).AndReturn(self.SIZE)
self.mox.ReplayAll()
image = self.image_class(self.INSTANCE, self.NAME)
- self.assertRaises(exception.ImageTooLarge, image.create_image, fn,
- self.TEMPLATE_PATH, 1)
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ image.create_image, fn, self.TEMPLATE_PATH, 1)
+ self.mox.VerifyAll()
+
+ def test_generate_resized_backing_files(self):
+ fn = self.prepare_mocks()
+ fn(target=self.TEMPLATE_PATH)
+ self.mox.StubOutWithMock(os.path, 'exists')
+ self.mox.StubOutWithMock(imagebackend.disk, 'get_disk_size')
+ self.mox.StubOutWithMock(imagebackend.libvirt_utils,
+ 'get_disk_backing_file')
+ if self.OLD_STYLE_INSTANCE_PATH:
+ os.path.exists(self.OLD_STYLE_INSTANCE_PATH).AndReturn(False)
+ os.path.exists(self.TEMPLATE_PATH).AndReturn(False)
+ os.path.exists(self.PATH).AndReturn(True)
+
+ imagebackend.libvirt_utils.get_disk_backing_file(self.PATH)\
+ .AndReturn(self.QCOW2_BASE)
+ os.path.exists(self.QCOW2_BASE).AndReturn(False)
+ imagebackend.libvirt_utils.copy_image(self.TEMPLATE_PATH,
+ self.QCOW2_BASE)
+ imagebackend.disk.extend(self.QCOW2_BASE, self.SIZE)
+
+ imagebackend.disk.get_disk_size(self.TEMPLATE_PATH
+ ).AndReturn(self.SIZE)
+ os.path.exists(self.PATH).AndReturn(True)
+ self.mox.ReplayAll()
+
+ image = self.image_class(self.INSTANCE, self.NAME)
+ image.create_image(fn, self.TEMPLATE_PATH, self.SIZE)
+
self.mox.VerifyAll()
diff --git a/nova/tests/virt/libvirt/test_libvirt.py b/nova/tests/virt/libvirt/test_libvirt.py
index f72c37cd1..d46b08946 100644
--- a/nova/tests/virt/libvirt/test_libvirt.py
+++ b/nova/tests/virt/libvirt/test_libvirt.py
@@ -281,6 +281,7 @@ class LibvirtConnTestCase(test.TestCase):
def setUp(self):
super(LibvirtConnTestCase, self).setUp()
+ self.useFixture(test.SampleNetworks())
self.flags(fake_call=True)
self.user_id = 'fake'
self.project_id = 'fake'
@@ -320,7 +321,7 @@ class LibvirtConnTestCase(test.TestCase):
lambda *a, **k: self.conn)
instance_type = db.instance_type_get(self.context, 5)
- sys_meta = flavors.save_instance_type_info({}, instance_type)
+ sys_meta = flavors.save_flavor_info({}, instance_type)
nova.tests.image.fake.stub_out_image_service(self.stubs)
self.test_instance = {
@@ -2153,7 +2154,7 @@ class LibvirtConnTestCase(test.TestCase):
conn.ensure_filtering_rules_for_instance(instance_ref,
network_info,
time_module=fake_timer)
- except exception.NovaException, e:
+ except exception.NovaException as e:
msg = ('The firewall filter for %s does not exist' %
instance_ref['name'])
c1 = (0 <= str(e).find(msg))
@@ -2264,9 +2265,9 @@ class LibvirtConnTestCase(test.TestCase):
conn._check_shared_storage_test_file("file").AndReturn(False)
self.mox.StubOutWithMock(conn, "_assert_dest_node_has_enough_disk")
- conn._assert_dest_node_has_enough_disk(self.context, instance_ref,
- dest_check_data['disk_available_mb'],
- False)
+ conn._assert_dest_node_has_enough_disk(
+ self.context, instance_ref, dest_check_data['disk_available_mb'],
+ False)
self.mox.ReplayAll()
conn.check_can_live_migrate_source(self.context, instance_ref,
@@ -2467,13 +2468,14 @@ class LibvirtConnTestCase(test.TestCase):
self.mox.ReplayAll()
migrate_data = {'is_shared_storage': False,
'is_volume_backed': True,
- 'block_migration': False
+ 'block_migration': False,
+ 'instance_relative_path': inst_ref['name']
}
ret = conn.pre_live_migration(c, inst_ref, vol, nw_info,
migrate_data)
self.assertEqual(ret, None)
self.assertTrue(os.path.exists('%s/%s/' % (tmpdir,
- inst_ref['uuid'])))
+ inst_ref['name'])))
db.instance_destroy(self.context, inst_ref['uuid'])
def test_pre_block_migration_works_correctly(self):
@@ -2611,7 +2613,7 @@ class LibvirtConnTestCase(test.TestCase):
instance_ref['image_ref'] = 123456 # we send an int to test sha1 call
instance_type = db.instance_type_get(self.context,
instance_ref['instance_type_id'])
- sys_meta = flavors.save_instance_type_info({}, instance_type)
+ sys_meta = flavors.save_flavor_info({}, instance_type)
instance_ref['system_metadata'] = sys_meta
instance = db.instance_create(self.context, instance_ref)
@@ -2706,6 +2708,7 @@ class LibvirtConnTestCase(test.TestCase):
instance_ref = self.test_instance
instance_ref['image_ref'] = ''
instance_ref['root_device_name'] = '/dev/vda'
+ instance_ref['uuid'] = uuidutils.generate_uuid()
instance = db.instance_create(self.context, instance_ref)
conn.spawn(self.context, instance, None, [], None,
@@ -2717,6 +2720,7 @@ class LibvirtConnTestCase(test.TestCase):
instance_ref = self.test_instance
instance_ref['image_ref'] = 'my_fake_image'
instance_ref['root_device_name'] = '/dev/vda'
+ instance_ref['uuid'] = uuidutils.generate_uuid()
instance = db.instance_create(self.context, instance_ref)
conn.spawn(self.context, instance, None, [], None,
@@ -2726,6 +2730,7 @@ class LibvirtConnTestCase(test.TestCase):
# Booted from an image
instance_ref['image_ref'] = 'my_fake_image'
+ instance_ref['uuid'] = uuidutils.generate_uuid()
instance = db.instance_create(self.context, instance_ref)
conn.spawn(self.context, instance, None, [], None)
self.assertTrue(self.cache_called_for_disk)
@@ -4810,16 +4815,15 @@ class LibvirtDriverTestCase(test.TestCase):
if not params:
params = {}
- sys_meta = flavors.save_instance_type_info(
- {}, flavors.get_instance_type_by_name('m1.tiny'))
+ sys_meta = flavors.save_flavor_info(
+ {}, flavors.get_flavor_by_name('m1.tiny'))
inst = {}
inst['image_ref'] = '1'
inst['reservation_id'] = 'r-fakeres'
- inst['launch_time'] = '10'
inst['user_id'] = 'fake'
inst['project_id'] = 'fake'
- type_id = flavors.get_instance_type_by_name('m1.tiny')['id']
+ type_id = flavors.get_flavor_by_name('m1.tiny')['id']
inst['instance_type_id'] = type_id
inst['ami_launch_index'] = 0
inst['host'] = 'host1'
@@ -4951,7 +4955,7 @@ class LibvirtDriverTestCase(test.TestCase):
self.libvirtconnection._wait_for_running({'name': 'else',
'uuid': 'other_uuid'})
- def test_finish_migration(self):
+ def _test_finish_migration(self, power_on):
"""Test for nova.virt.libvirt.libvirt_driver.LivirtConnection
.finish_migration. """
@@ -4960,6 +4964,8 @@ class LibvirtDriverTestCase(test.TestCase):
{'type': 'raw', 'path': '/test/disk.local',
'local_gb': 10, 'backing_file': '/base/disk.local'}]
disk_info_text = jsonutils.dumps(disk_info)
+ powered_on = power_on
+ self.fake_create_domain_called = False
def fake_can_resize_fs(path, size, use_cow=False):
return False
@@ -4981,7 +4987,9 @@ class LibvirtDriverTestCase(test.TestCase):
block_device_info=None):
pass
- def fake_create_domain(xml, instance=None):
+ def fake_create_domain(xml, instance=None, power_on=True):
+ self.fake_create_domain_called = True
+ self.assertEqual(powered_on, power_on)
return None
def fake_enable_hairpin(instance):
@@ -4991,7 +4999,10 @@ class LibvirtDriverTestCase(test.TestCase):
pass
def fake_get_info(instance):
- return {'state': power_state.RUNNING}
+ if powered_on:
+ return {'state': power_state.RUNNING}
+ else:
+ return {'state': power_state.SHUTDOWN}
self.flags(use_cow_images=True)
self.stubs.Set(libvirt_driver.disk, 'extend', fake_extend)
@@ -5015,11 +5026,20 @@ class LibvirtDriverTestCase(test.TestCase):
self.libvirtconnection.finish_migration(
context.get_admin_context(), None, ins_ref,
- disk_info_text, None, None, None)
+ disk_info_text, None, None, None, None, power_on)
+ self.assertTrue(self.fake_create_domain_called)
+
+ def test_finish_migration_power_on(self):
+ self._test_finish_migration(True)
+
+ def test_finish_migration_power_off(self):
+ self._test_finish_migration(False)
- def test_finish_revert_migration(self):
+ def _test_finish_revert_migration(self, power_on):
"""Test for nova.virt.libvirt.libvirt_driver.LivirtConnection
.finish_revert_migration. """
+ powered_on = power_on
+ self.fake_create_domain_called = False
def fake_execute(*args, **kwargs):
pass
@@ -5027,14 +5047,19 @@ class LibvirtDriverTestCase(test.TestCase):
def fake_plug_vifs(instance, network_info):
pass
- def fake_create_domain(xml, instance=None):
+ def fake_create_domain(xml, instance=None, power_on=True):
+ self.fake_create_domain_called = True
+ self.assertEqual(powered_on, power_on)
return None
def fake_enable_hairpin(instance):
pass
def fake_get_info(instance):
- return {'state': power_state.RUNNING}
+ if powered_on:
+ return {'state': power_state.RUNNING}
+ else:
+ return {'state': power_state.SHUTDOWN}
def fake_to_xml(instance, network_info, disk_info,
image_meta=None, rescue=None,
@@ -5063,7 +5088,15 @@ class LibvirtDriverTestCase(test.TestCase):
f = open(libvirt_xml_path, 'w')
f.close()
- self.libvirtconnection.finish_revert_migration(ins_ref, None)
+ self.libvirtconnection.finish_revert_migration(ins_ref, None,
+ None, power_on)
+ self.assertTrue(self.fake_create_domain_called)
+
+ def test_finish_revert_migration_power_on(self):
+ self._test_finish_revert_migration(True)
+
+ def test_finish_revert_migration_power_off(self):
+ self._test_finish_revert_migration(False)
def _test_finish_revert_migration_after_crash(self, backup_made, new_made):
class FakeLoopingCall:
diff --git a/nova/tests/virt/libvirt/test_libvirt_blockinfo.py b/nova/tests/virt/libvirt/test_libvirt_blockinfo.py
index aae5bec58..a43d0d5e0 100644
--- a/nova/tests/virt/libvirt/test_libvirt_blockinfo.py
+++ b/nova/tests/virt/libvirt/test_libvirt_blockinfo.py
@@ -34,7 +34,7 @@ class LibvirtBlockInfoTest(test.TestCase):
self.project_id = 'fake'
self.context = context.get_admin_context()
instance_type = db.instance_type_get(self.context, 2)
- sys_meta = flavors.save_instance_type_info({}, instance_type)
+ sys_meta = flavors.save_flavor_info({}, instance_type)
nova.tests.image.fake.stub_out_image_service(self.stubs)
self.test_instance = {
'uuid': '32dfcb37-5af1-552b-357c-be8c3aa38310',
diff --git a/nova/tests/virt/libvirt/test_libvirt_config.py b/nova/tests/virt/libvirt/test_libvirt_config.py
index 8eed7136e..2d9e52f3c 100644
--- a/nova/tests/virt/libvirt/test_libvirt_config.py
+++ b/nova/tests/virt/libvirt/test_libvirt_config.py
@@ -434,7 +434,7 @@ class LibvirtConfigGuestDiskTest(LibvirtConfigBaseTest):
obj = config.LibvirtConfigGuestDisk()
obj.source_type = "network"
obj.source_protocol = "iscsi"
- obj.source_host = "foo.bar.com"
+ obj.source_name = "foo.bar.com"
obj.driver_name = "qemu"
obj.driver_format = "qcow2"
obj.target_dev = "/dev/hda"
@@ -448,11 +448,56 @@ class LibvirtConfigGuestDiskTest(LibvirtConfigBaseTest):
<target bus="ide" dev="/dev/hda"/>
</disk>""")
+ def test_config_network_no_name(self):
+ obj = config.LibvirtConfigGuestDisk()
+ obj.source_type = 'network'
+ obj.source_protocol = 'nbd'
+ obj.source_hosts = ['foo.bar.com']
+ obj.source_ports = [None]
+ obj.driver_name = 'qemu'
+ obj.driver_format = 'raw'
+ obj.target_dev = '/dev/vda'
+ obj.target_bus = 'virtio'
+
+ xml = obj.to_xml()
+ self.assertXmlEqual(xml, """
+ <disk type="network" device="disk">
+ <driver name="qemu" type="raw"/>
+ <source protocol="nbd">
+ <host name="foo.bar.com"/>
+ </source>
+ <target bus="virtio" dev="/dev/vda"/>
+ </disk>""")
+
+ def test_config_network_multihost(self):
+ obj = config.LibvirtConfigGuestDisk()
+ obj.source_type = 'network'
+ obj.source_protocol = 'rbd'
+ obj.source_name = 'pool/image'
+ obj.source_hosts = ['foo.bar.com', '::1', '1.2.3.4']
+ obj.source_ports = [None, '123', '456']
+ obj.driver_name = 'qemu'
+ obj.driver_format = 'raw'
+ obj.target_dev = '/dev/vda'
+ obj.target_bus = 'virtio'
+
+ xml = obj.to_xml()
+ self.assertXmlEqual(xml, """
+ <disk type="network" device="disk">
+ <driver name="qemu" type="raw"/>
+ <source name="pool/image" protocol="rbd">
+ <host name="foo.bar.com"/>
+ <host name="::1" port="123"/>
+ <host name="1.2.3.4" port="456"/>
+ </source>
+ <target bus="virtio" dev="/dev/vda"/>
+ </disk>""")
+
def test_config_network_auth(self):
obj = config.LibvirtConfigGuestDisk()
obj.source_type = "network"
obj.source_protocol = "rbd"
- obj.source_host = "pool/image"
+ obj.source_name = "pool/image"
obj.driver_name = "qemu"
obj.driver_format = "raw"
obj.target_dev = "/dev/vda"
diff --git a/nova/tests/virt/libvirt/test_libvirt_volume.py b/nova/tests/virt/libvirt/test_libvirt_volume.py
index 86773dd10..a6dd9e7fe 100644
--- a/nova/tests/virt/libvirt/test_libvirt_volume.py
+++ b/nova/tests/virt/libvirt/test_libvirt_volume.py
@@ -218,6 +218,32 @@ class LibvirtVolumeTestCase(test.TestCase):
self.assertEqual(tree.find('./source/auth'), None)
libvirt_driver.disconnect_volume(connection_info, "vde")
+ def test_libvirt_rbd_driver_hosts(self):
+ libvirt_driver = volume.LibvirtNetVolumeDriver(self.fake_conn)
+ name = 'volume-00000001'
+ vol = {'id': 1, 'name': name}
+ connection_info = self.rbd_connection(vol)
+ disk_info = {
+ "bus": "virtio",
+ "dev": "vde",
+ "type": "disk",
+ }
+ hosts = ['example.com', '1.2.3.4', '::1']
+ ports = [None, '6790', '6791']
+ connection_info['data']['hosts'] = hosts
+ connection_info['data']['ports'] = ports
+ conf = libvirt_driver.connect_volume(connection_info, disk_info)
+ tree = conf.format_dom()
+ self.assertEqual(tree.get('type'), 'network')
+ self.assertEqual(tree.find('./source').get('protocol'), 'rbd')
+ rbd_name = '%s/%s' % ('rbd', name)
+ self.assertEqual(tree.find('./source').get('name'), rbd_name)
+ self.assertEqual(tree.find('./source/auth'), None)
+ found_hosts = tree.findall('./source/host')
+ self.assertEqual([host.get('name') for host in found_hosts], hosts)
+ self.assertEqual([host.get('port') for host in found_hosts], ports)
+ libvirt_driver.disconnect_volume(connection_info, "vde")
+
def test_libvirt_rbd_driver_auth_enabled(self):
libvirt_driver = volume.LibvirtNetVolumeDriver(self.fake_conn)
name = 'volume-00000001'
@@ -444,10 +470,43 @@ class LibvirtVolumeTestCase(test.TestCase):
libvirt_driver.disconnect_volume(connection_info, "vde")
expected_commands = [
- ('stat', export_mnt_base),
+ ('mkdir', '-p', export_mnt_base),
('mount', '-t', 'nfs', export_string, export_mnt_base)]
self.assertEqual(self.executes, expected_commands)
+ def test_libvirt_nfs_driver_with_opts(self):
+ mnt_base = '/mnt'
+ self.flags(nfs_mount_point_base=mnt_base)
+
+ libvirt_driver = volume.LibvirtNFSVolumeDriver(self.fake_conn)
+ export_string = '192.168.1.1:/nfs/share1'
+ name = 'volume-00001'
+ options = '-o intr,nfsvers=3'
+ export_mnt_base = os.path.join(mnt_base,
+ libvirt_driver.get_hash_str(export_string))
+ file_path = os.path.join(export_mnt_base, name)
+
+ connection_info = {'data': {'export': export_string,
+ 'name': name,
+ 'options': options}}
+ disk_info = {
+ "bus": "virtio",
+ "dev": "vde",
+ "type": "disk",
+ }
+ conf = libvirt_driver.connect_volume(connection_info, disk_info)
+ tree = conf.format_dom()
+ self.assertEqual(tree.get('type'), 'file')
+ self.assertEqual(tree.find('./source').get('file'), file_path)
+ libvirt_driver.disconnect_volume(connection_info, "vde")
+
+ expected_commands = [
+ ('mkdir', '-p', export_mnt_base),
+ ('mount', '-t', 'nfs', '-o', 'intr,nfsvers=3',
+ export_string, export_mnt_base)
+ ]
+ self.assertEqual(self.executes, expected_commands)
+
def aoe_connection(self, shelf, lun):
return {
'driver_volume_type': 'aoe',
@@ -500,10 +559,44 @@ class LibvirtVolumeTestCase(test.TestCase):
libvirt_driver.disconnect_volume(connection_info, "vde")
expected_commands = [
- ('stat', export_mnt_base),
+ ('mkdir', '-p', export_mnt_base),
('mount', '-t', 'glusterfs', export_string, export_mnt_base)]
self.assertEqual(self.executes, expected_commands)
+ def test_libvirt_glusterfs_driver_with_opts(self):
+ mnt_base = '/mnt'
+ self.flags(glusterfs_mount_point_base=mnt_base)
+
+ libvirt_driver = volume.LibvirtGlusterfsVolumeDriver(self.fake_conn)
+ export_string = '192.168.1.1:/volume-00001'
+ options = '-o backupvolfile-server=192.168.1.2'
+ name = 'volume-00001'
+ export_mnt_base = os.path.join(mnt_base,
+ libvirt_driver.get_hash_str(export_string))
+ file_path = os.path.join(export_mnt_base, name)
+
+ connection_info = {'data': {'export': export_string,
+ 'name': name,
+ 'options': options}}
+ disk_info = {
+ "bus": "virtio",
+ "dev": "vde",
+ "type": "disk",
+ }
+
+ conf = libvirt_driver.connect_volume(connection_info, disk_info)
+ tree = conf.format_dom()
+ self.assertEqual(tree.get('type'), 'file')
+ self.assertEqual(tree.find('./source').get('file'), file_path)
+ libvirt_driver.disconnect_volume(connection_info, "vde")
+
+ expected_commands = [
+ ('mkdir', '-p', export_mnt_base),
+ ('mount', '-t', 'glusterfs',
+ '-o', 'backupvolfile-server=192.168.1.2',
+ export_string, export_mnt_base)]
+ self.assertEqual(self.executes, expected_commands)
+
def fibrechan_connection(self, volume, location, wwn):
return {
'driver_volume_type': 'fibrechan',
@@ -526,6 +619,7 @@ class LibvirtVolumeTestCase(test.TestCase):
libvirt_driver = volume.LibvirtFibreChannelVolumeDriver(self.fake_conn)
multipath_devname = '/dev/md-1'
devices = {"device": multipath_devname,
+ "id": "1234567890",
"devices": [{'device': '/dev/sdb',
'address': '1:0:0:1',
'host': 1, 'channel': 0,
diff --git a/nova/tests/xenapi/__init__.py b/nova/tests/virt/powervm/__init__.py
index 1dd02bdc1..d5d002224 100644
--- a/nova/tests/xenapi/__init__.py
+++ b/nova/tests/virt/powervm/__init__.py
@@ -1,6 +1,7 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
-# Copyright (c) 2010 Citrix Systems, Inc.
+# Copyright 2013 OpenStack Foundation
+# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
@@ -13,8 +14,3 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-
-"""
-:mod:`xenapi` -- Stubs for XenAPI
-=================================
-"""
diff --git a/nova/tests/test_powervm.py b/nova/tests/virt/powervm/test_powervm.py
index 8d22a296a..8fe08bdb8 100644
--- a/nova/tests/test_powervm.py
+++ b/nova/tests/virt/powervm/test_powervm.py
@@ -19,6 +19,7 @@ Test suite for PowerVMDriver.
"""
import contextlib
+import os
import paramiko
from nova import context
@@ -175,6 +176,21 @@ def fake_get_powervm_operator():
return FakeIVMOperator(None)
+def create_instance(testcase):
+ fake.stub_out_image_service(testcase.stubs)
+ ctxt = context.get_admin_context()
+ instance_type = db.instance_type_get(ctxt, 1)
+ sys_meta = flavors.save_flavor_info({}, instance_type)
+ return db.instance_create(ctxt,
+ {'user_id': 'fake',
+ 'project_id': 'fake',
+ 'instance_type_id': 1,
+ 'memory_mb': 1024,
+ 'vcpus': 2,
+ 'image_ref': '155d900f-4e14-4e4c-a73d-069cbf4541e6',
+ 'system_metadata': sys_meta})
+
+
class PowerVMDriverTestCase(test.TestCase):
"""Unit tests for PowerVM connection calls."""
@@ -185,21 +201,7 @@ class PowerVMDriverTestCase(test.TestCase):
self.stubs.Set(powervm_operator, 'get_powervm_disk_adapter',
lambda: FakeBlockAdapter())
self.powervm_connection = powervm_driver.PowerVMDriver(None)
- self.instance = self._create_instance()
-
- def _create_instance(self):
- fake.stub_out_image_service(self.stubs)
- ctxt = context.get_admin_context()
- instance_type = db.instance_type_get(ctxt, 1)
- sys_meta = flavors.save_instance_type_info({}, instance_type)
- return db.instance_create(ctxt,
- {'user_id': 'fake',
- 'project_id': 'fake',
- 'instance_type_id': 1,
- 'memory_mb': 1024,
- 'vcpus': 2,
- 'image_ref': '155d900f-4e14-4e4c-a73d-069cbf4541e6',
- 'system_metadata': sys_meta})
+ self.instance = create_instance(self)
def test_list_instances(self):
instances = self.powervm_connection.list_instances()
@@ -378,7 +380,9 @@ class PowerVMDriverTestCase(test.TestCase):
expected_path = '/some/file/path/filename'
self.assertEqual(joined_path, expected_path)
- def _test_finish_revert_migration_after_crash(self, backup_made, new_made):
+ def _test_finish_revert_migration_after_crash(self, backup_made,
+ new_made,
+ power_on):
inst = {'name': 'foo'}
network_info = []
network_info.append({'address': 'fa:89:f0:8b:9b:39'})
@@ -402,21 +406,24 @@ class PowerVMDriverTestCase(test.TestCase):
'foo')
self.powervm_connection._powervm._operator.set_lpar_mac_base_value(
'foo', 'fa:89:f0:8b:9b:39')
- self.powervm_connection._powervm.power_on('foo')
+ if power_on:
+ self.powervm_connection._powervm.power_on('foo')
self.mox.ReplayAll()
self.powervm_connection.finish_revert_migration(inst, network_info,
- block_device_info=None)
+ block_device_info=None,
+ power_on=power_on)
def test_finish_revert_migration_after_crash(self):
- self._test_finish_revert_migration_after_crash(True, True)
+ self._test_finish_revert_migration_after_crash(True, True, True)
def test_finish_revert_migration_after_crash_before_new(self):
- self._test_finish_revert_migration_after_crash(True, False)
+ self._test_finish_revert_migration_after_crash(True, False, True)
def test_finish_revert_migration_after_crash_before_backup(self):
- self._test_finish_revert_migration_after_crash(False, False)
+ # NOTE(mriedem): tests the power_on=False case also
+ self._test_finish_revert_migration_after_crash(False, False, False)
def test_migrate_volume_use_instance_name(self):
inst_name = 'instance-00000000'
@@ -455,7 +462,7 @@ class PowerVMDriverTestCase(test.TestCase):
expected_path = 'some/image/path/logical-vol-name_rsz.gz'
self.assertEqual(file_path, expected_path)
- def test_deploy_from_migrated_file(self):
+ def _test_deploy_from_migrated_file(self, power_on):
instance = self.instance
context = 'fake_context'
network_info = []
@@ -467,9 +474,10 @@ class PowerVMDriverTestCase(test.TestCase):
self.flags(powervm_mgr=dest)
fake_op = self.powervm_connection._powervm
self.deploy_from_vios_file_called = False
+ self.power_on = power_on
def fake_deploy_from_vios_file(lpar, file_path, size,
- decompress):
+ decompress, power_on):
exp_file_path = 'some/file/path.gz'
exp_size = 40 * 1024 ** 3
exp_decompress = True
@@ -477,15 +485,23 @@ class PowerVMDriverTestCase(test.TestCase):
self.assertEqual(exp_file_path, file_path)
self.assertEqual(exp_size, size)
self.assertEqual(exp_decompress, decompress)
+ self.assertEqual(self.power_on, power_on)
self.stubs.Set(fake_op, '_deploy_from_vios_file',
fake_deploy_from_vios_file)
self.powervm_connection.finish_migration(context, None,
instance, disk_info, network_info,
None, resize_instance=True,
- block_device_info=None)
+ block_device_info=None,
+ power_on=power_on)
self.assertEqual(self.deploy_from_vios_file_called, True)
+ def test_deploy_from_migrated_file_power_on(self):
+ self._test_deploy_from_migrated_file(True)
+
+ def test_deploy_from_migrated_file_power_off(self):
+ self._test_deploy_from_migrated_file(False)
+
def test_set_lpar_mac_base_value(self):
instance = self.instance
context = 'fake_context'
@@ -665,3 +681,147 @@ class PowerVMDriverCommonTestCase(test.TestCase):
self.assertRaises(paramiko.SSHException,
common.check_connection,
ssh, self.connection)
+
+
+def fake_copy_image_file(source_path, remote_path):
+ return '/tmp/fake_file', 1
+
+
+class PowerVMLocalVolumeAdapterTestCase(test.TestCase):
+ """
+ Unit tests for nova.virt.powervm.blockdev.PowerVMLocalVolumeAdapter.
+ """
+
+ def setUp(self):
+ super(PowerVMLocalVolumeAdapterTestCase, self).setUp()
+ self.context = context.get_admin_context()
+ self.connection = common.Connection(host='fake_compute_1',
+ username='fake_user',
+ password='fake_pass')
+ self.powervm_adapter = powervm_blockdev.PowerVMLocalVolumeAdapter(
+ self.connection)
+ self.instance = create_instance(self)
+ self.image_id = self.instance['image_ref']
+
+ def test_create_volume_from_image_fails_no_disk_name(self):
+ """
+ Tests that delete_volume is not called after create_logical_volume
+ fails.
+ """
+
+ def fake_create_logical_volume(size):
+ raise exception.PowerVMNoSpaceLeftOnVolumeGroup()
+
+ def fake_delete_volume(volume_info):
+ self.fail("Should not be called to do cleanup.")
+
+ self.stubs.Set(self.powervm_adapter, '_copy_image_file',
+ fake_copy_image_file)
+ self.stubs.Set(self.powervm_adapter, '_create_logical_volume',
+ fake_create_logical_volume)
+ self.stubs.Set(self.powervm_adapter, 'delete_volume',
+ fake_delete_volume)
+
+ self.assertRaises(exception.PowerVMNoSpaceLeftOnVolumeGroup,
+ self.powervm_adapter.create_volume_from_image,
+ self.context, self.instance, self.image_id)
+
+ def test_create_volume_from_image_fails_with_disk_name(self):
+ """
+ Tests that delete_volume is called to cleanup the volume after
+ create_logical_volume was successful but copy_file_to_device fails.
+ """
+
+ disk_name = 'lvm_disk_name'
+
+ def fake_create_logical_volume(size):
+ return disk_name
+
+ def fake_copy_file_to_device(source_path, device):
+ raise exception.PowerVMConnectionFailed()
+
+ self.delete_volume_called = False
+
+ def fake_delete_volume(volume_info):
+ self.assertEquals(disk_name, volume_info)
+ self.delete_volume_called = True
+
+ self.stubs.Set(self.powervm_adapter, '_copy_image_file',
+ fake_copy_image_file)
+ self.stubs.Set(self.powervm_adapter, '_create_logical_volume',
+ fake_create_logical_volume)
+ self.stubs.Set(self.powervm_adapter, '_copy_file_to_device',
+ fake_copy_file_to_device)
+ self.stubs.Set(self.powervm_adapter, 'delete_volume',
+ fake_delete_volume)
+
+ self.assertRaises(exception.PowerVMConnectionFailed,
+ self.powervm_adapter.create_volume_from_image,
+ self.context, self.instance, self.image_id)
+ self.assertTrue(self.delete_volume_called)
+
+ def test_copy_image_file_wrong_checksum(self):
+ file_path = os.tempnam('/tmp', 'image')
+ remote_path = '/mnt/openstack/images'
+ exp_remote_path = os.path.join(remote_path,
+ os.path.basename(file_path))
+ exp_cmd = ' '.join(['/usr/bin/rm -f', exp_remote_path])
+
+ def fake_md5sum_remote_file(remote_path):
+ return '3202937169'
+
+ def fake_checksum_local_file(source_path):
+ return '3229026618'
+
+ fake_noop = lambda *args, **kwargs: None
+ fake_op = self.powervm_adapter
+ self.stubs.Set(fake_op, 'run_vios_command', fake_noop)
+ self.stubs.Set(fake_op, '_md5sum_remote_file',
+ fake_md5sum_remote_file)
+ self.stubs.Set(fake_op, '_checksum_local_file',
+ fake_checksum_local_file)
+ self.stubs.Set(common, 'ftp_put_command', fake_noop)
+
+ self.mox.StubOutWithMock(self.powervm_adapter,
+ 'run_vios_command_as_root')
+ self.powervm_adapter.run_vios_command_as_root(exp_cmd).AndReturn([])
+
+ self.mox.ReplayAll()
+
+ self.assertRaises(exception.PowerVMFileTransferFailed,
+ self.powervm_adapter._copy_image_file,
+ file_path, remote_path)
+
+ def test_checksum_local_file(self):
+ file_path = os.tempnam('/tmp', 'image')
+ img_file = file(file_path, 'w')
+ img_file.write('This is a test')
+ img_file.close()
+ exp_md5sum = 'ce114e4501d2f4e2dcea3e17b546f339'
+
+ self.assertEqual(self.powervm_adapter._checksum_local_file(file_path),
+ exp_md5sum)
+ os.remove(file_path)
+
+ def test_copy_image_file_from_host_with_wrong_checksum(self):
+ local_path = 'some/tmp'
+ remote_path = os.tempnam('/mnt/openstack/images', 'image')
+
+ def fake_md5sum_remote_file(remote_path):
+ return '3202937169'
+
+ def fake_checksum_local_file(source_path):
+ return '3229026618'
+
+ fake_noop = lambda *args, **kwargs: None
+ fake_op = self.powervm_adapter
+ self.stubs.Set(fake_op, 'run_vios_command_as_root', fake_noop)
+ self.stubs.Set(fake_op, '_md5sum_remote_file',
+ fake_md5sum_remote_file)
+ self.stubs.Set(fake_op, '_checksum_local_file',
+ fake_checksum_local_file)
+ self.stubs.Set(common, 'ftp_get_command', fake_noop)
+
+ self.assertRaises(exception.PowerVMFileTransferFailed,
+ self.powervm_adapter._copy_image_file_from_host,
+ remote_path, local_path)
diff --git a/nova/tests/test_driver.py b/nova/tests/virt/test_driver.py
index 6fd8b00b1..0416bbdd5 100644
--- a/nova/tests/test_driver.py
+++ b/nova/tests/virt/test_driver.py
@@ -39,8 +39,8 @@ class ToDriverRegistryTestCase(test.TestCase):
def test_driver_dict_from_config(self):
drvs = driver.driver_dict_from_config(
[
- 'key1=nova.tests.test_driver.FakeDriver',
- 'key2=nova.tests.test_driver.FakeDriver2',
+ 'key1=nova.tests.virt.test_driver.FakeDriver',
+ 'key2=nova.tests.virt.test_driver.FakeDriver2',
], 'arg1', 'arg2', param1='value1', param2='value2'
)
diff --git a/nova/tests/test_virt.py b/nova/tests/virt/test_virt.py
index 452277c54..452277c54 100644
--- a/nova/tests/test_virt.py
+++ b/nova/tests/virt/test_virt.py
diff --git a/nova/tests/test_virt_disk.py b/nova/tests/virt/test_virt_disk.py
index 0c51e8267..0c51e8267 100644
--- a/nova/tests/test_virt_disk.py
+++ b/nova/tests/virt/test_virt_disk.py
diff --git a/nova/tests/test_virt_disk_vfs_guestfs.py b/nova/tests/virt/test_virt_disk_vfs_guestfs.py
index 16c85f815..16c85f815 100644
--- a/nova/tests/test_virt_disk_vfs_guestfs.py
+++ b/nova/tests/virt/test_virt_disk_vfs_guestfs.py
diff --git a/nova/tests/test_virt_disk_vfs_localfs.py b/nova/tests/virt/test_virt_disk_vfs_localfs.py
index b52817b18..b52817b18 100644
--- a/nova/tests/test_virt_disk_vfs_localfs.py
+++ b/nova/tests/virt/test_virt_disk_vfs_localfs.py
diff --git a/nova/tests/test_virt_drivers.py b/nova/tests/virt/test_virt_drivers.py
index c054b9624..c054b9624 100644
--- a/nova/tests/test_virt_drivers.py
+++ b/nova/tests/virt/test_virt_drivers.py
diff --git a/nova/tests/vmwareapi/__init__.py b/nova/tests/virt/vmwareapi/__init__.py
index d22b919f3..fcf71c88d 100644
--- a/nova/tests/vmwareapi/__init__.py
+++ b/nova/tests/virt/vmwareapi/__init__.py
@@ -14,8 +14,3 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-
-"""
-:mod:`vmwareapi` -- Stubs for VMware API
-=======================================
-"""
diff --git a/nova/tests/vmwareapi/db_fakes.py b/nova/tests/virt/vmwareapi/db_fakes.py
index 54e3cf43b..8f2df43e3 100644
--- a/nova/tests/vmwareapi/db_fakes.py
+++ b/nova/tests/virt/vmwareapi/db_fakes.py
@@ -19,7 +19,6 @@
Stubouts, mocks and fixtures for the test suite
"""
-import time
import uuid
from nova.compute import task_states
@@ -72,7 +71,6 @@ def stub_out_db_instance_api(stubs):
'task_state': task_states.SCHEDULING,
'user_id': values['user_id'],
'project_id': values['project_id'],
- 'launch_time': time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime()),
'instance_type': values['instance_type'],
'memory_mb': type_data['memory_mb'],
'vcpus': type_data['vcpus'],
diff --git a/nova/tests/vmwareapi/stubs.py b/nova/tests/virt/vmwareapi/stubs.py
index dc87b2355..dc87b2355 100644
--- a/nova/tests/vmwareapi/stubs.py
+++ b/nova/tests/virt/vmwareapi/stubs.py
diff --git a/nova/tests/test_vmwareapi.py b/nova/tests/virt/vmwareapi/test_vmwareapi.py
index f63e403d6..da9ed1467 100644
--- a/nova/tests/test_vmwareapi.py
+++ b/nova/tests/virt/vmwareapi/test_vmwareapi.py
@@ -33,12 +33,14 @@ from nova import test
import nova.tests.image.fake
from nova.tests import matchers
from nova.tests import utils
-from nova.tests.vmwareapi import db_fakes
-from nova.tests.vmwareapi import stubs
+from nova.tests.virt.vmwareapi import db_fakes
+from nova.tests.virt.vmwareapi import stubs
+from nova.virt import fake
from nova.virt.vmwareapi import driver
from nova.virt.vmwareapi import fake as vmwareapi_fake
from nova.virt.vmwareapi import vim
from nova.virt.vmwareapi import vm_util
+from nova.virt.vmwareapi import vmops
class fake_vm_ref(object):
@@ -113,7 +115,7 @@ class VMwareAPIVMTestCase(test.TestCase):
vmwareapi_fake.reset()
db_fakes.stub_out_db_instance_api(self.stubs)
stubs.set_stubs(self.stubs)
- self.conn = driver.VMwareESXDriver(None, False)
+ self.conn = driver.VMwareVCDriver(fake.FakeVirtAPI)
# NOTE(vish): none of the network plugging code is actually
# being tested
self.network_info = utils.get_test_network_info(legacy_model=False)
@@ -183,6 +185,17 @@ class VMwareAPIVMTestCase(test.TestCase):
# Check that the VM is running according to vSphere API.
self.assertEquals(vm.get("runtime.powerState"), 'poweredOn')
+ found_vm_uuid = False
+ found_iface_id = False
+ for c in vm.get("config.extraConfig"):
+ if (c.key == "nvp.vm-uuid" and c.value == self.instance['uuid']):
+ found_vm_uuid = True
+ if (c.key == "nvp.iface-id.0" and c.value == "vif-xxx-yyy-zzz"):
+ found_iface_id = True
+
+ self.assertTrue(found_vm_uuid)
+ self.assertTrue(found_iface_id)
+
def _check_vm_info(self, info, pwr_state=power_state.RUNNING):
"""
Check if the get_info returned values correspond to the instance
@@ -381,6 +394,102 @@ class VMwareAPIVMTestCase(test.TestCase):
self.mox.ReplayAll()
self.conn.get_console_output(self.instance)
+ def _test_finish_migration(self, power_on):
+ """
+ Tests the finish_migration method on vmops via the
+ VMwareVCDriver. Results are checked against whether or not
+ the underlying instance should have been powered on.
+ """
+
+ self.power_on_called = False
+
+ def fake_power_on(instance):
+ self.assertEquals(self.instance, instance)
+ self.power_on_called = True
+
+ def fake_vmops_update_instance_progress(context, instance, step,
+ total_steps):
+ self.assertEquals(self.context, context)
+ self.assertEquals(self.instance, instance)
+ self.assertEquals(4, step)
+ self.assertEqual(vmops.RESIZE_TOTAL_STEPS, total_steps)
+
+ self.stubs.Set(self.conn._vmops, "power_on", fake_power_on)
+ self.stubs.Set(self.conn._vmops, "_update_instance_progress",
+ fake_vmops_update_instance_progress)
+
+ # setup the test instance in the database
+ self._create_vm()
+ # perform the migration on our stubbed methods
+ self.conn.finish_migration(context=self.context,
+ migration=None,
+ instance=self.instance,
+ disk_info=None,
+ network_info=None,
+ image_meta=None,
+ power_on=power_on)
+ # verify the results
+ self.assertEquals(power_on, self.power_on_called)
+
+ def test_finish_migration_power_on(self):
+ self._test_finish_migration(power_on=True)
+
+ def test_finish_migration_power_off(self):
+ self._test_finish_migration(power_on=False)
+
+ def _test_finish_revert_migration(self, power_on):
+ """
+ Tests the finish_revert_migration method on vmops via the
+ VMwareVCDriver. Results are checked against whether or not
+ the underlying instance should have been powered on.
+ """
+
+ # setup the test instance in the database
+ self._create_vm()
+
+ self.power_on_called = False
+ self.vm_name = str(self.instance['name']) + '-orig'
+
+ def fake_power_on(instance):
+ self.assertEquals(self.instance, instance)
+ self.power_on_called = True
+
+ def fake_get_orig_vm_name_label(instance):
+ self.assertEquals(self.instance, instance)
+ return self.vm_name
+
+ def fake_get_vm_ref_from_name(session, vm_name):
+ self.assertEquals(self.vm_name, vm_name)
+ return vmwareapi_fake._get_objects("VirtualMachine")[0]
+
+ def fake_call_method(*args, **kwargs):
+ pass
+
+ def fake_wait_for_task(*args, **kwargs):
+ pass
+
+ self.stubs.Set(self.conn._vmops, "power_on", fake_power_on)
+ self.stubs.Set(self.conn._vmops, "_get_orig_vm_name_label",
+ fake_get_orig_vm_name_label)
+ self.stubs.Set(vm_util, "get_vm_ref_from_name",
+ fake_get_vm_ref_from_name)
+ self.stubs.Set(self.conn._session, "_call_method", fake_call_method)
+ self.stubs.Set(self.conn._session, "_wait_for_task",
+ fake_wait_for_task)
+
+ # perform the revert on our stubbed methods
+ self.conn.finish_revert_migration(instance=self.instance,
+ network_info=None,
+ power_on=power_on)
+ # verify the results
+ self.assertEquals(power_on, self.power_on_called)
+
+ def test_finish_revert_migration_power_on(self):
+ self._test_finish_revert_migration(power_on=True)
+
+ def test_finish_revert_migration_power_off(self):
+ self._test_finish_revert_migration(power_on=False)
+
class VMwareAPIHostTestCase(test.TestCase):
"""Unit tests for Vmware API host calls."""
diff --git a/nova/tests/test_vmwareapi_vif.py b/nova/tests/virt/vmwareapi/test_vmwareapi_vif.py
index 043885543..043885543 100644
--- a/nova/tests/test_vmwareapi_vif.py
+++ b/nova/tests/virt/vmwareapi/test_vmwareapi_vif.py
diff --git a/nova/tests/test_vmwareapi_vm_util.py b/nova/tests/virt/vmwareapi/test_vmwareapi_vm_util.py
index eda2c25f9..eda2c25f9 100644
--- a/nova/tests/test_vmwareapi_vm_util.py
+++ b/nova/tests/virt/vmwareapi/test_vmwareapi_vm_util.py
diff --git a/nova/tests/test_vmwareapi_vmops.py b/nova/tests/virt/vmwareapi/test_vmwareapi_vmops.py
index 92bca8ae7..92bca8ae7 100644
--- a/nova/tests/test_vmwareapi_vmops.py
+++ b/nova/tests/virt/vmwareapi/test_vmwareapi_vmops.py
diff --git a/nova/tests/virt/xenapi/imageupload/test_glance.py b/nova/tests/virt/xenapi/imageupload/test_glance.py
index 34e95ab80..7b6fbd43d 100644
--- a/nova/tests/virt/xenapi/imageupload/test_glance.py
+++ b/nova/tests/virt/xenapi/imageupload/test_glance.py
@@ -48,10 +48,12 @@ class TestGlanceStore(test.TestCase):
properties = {
'auto_disk_config': True,
'os_type': 'default',
+ 'xenapi_use_agent': 'true',
}
image_id = 'fake_image_uuid'
vdi_uuids = ['fake_vdi_uuid']
- instance = {'uuid': 'blah'}
+ instance = {'uuid': 'blah',
+ 'system_metadata': {'image_xenapi_use_agent': 'true'}}
instance.update(properties)
params = {'vdi_uuids': vdi_uuids,
diff --git a/nova/tests/xenapi/stubs.py b/nova/tests/virt/xenapi/stubs.py
index fa214b23e..fa214b23e 100644
--- a/nova/tests/xenapi/stubs.py
+++ b/nova/tests/virt/xenapi/stubs.py
diff --git a/nova/tests/virt/xenapi/test_agent.py b/nova/tests/virt/xenapi/test_agent.py
new file mode 100644
index 000000000..9a4d7c345
--- /dev/null
+++ b/nova/tests/virt/xenapi/test_agent.py
@@ -0,0 +1,51 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 OpenStack Foundation
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+
+from nova import test
+from nova.virt.xenapi import agent
+
+
+class AgentEnabledCase(test.TestCase):
+ def test_agent_is_present(self):
+ self.flags(xenapi_use_agent_default=False)
+ instance = {"system_metadata":
+ {"image_xenapi_use_agent": "true"}}
+ self.assertTrue(agent.should_use_agent(instance))
+
+ def test_agent_is_disabled(self):
+ self.flags(xenapi_use_agent_default=True)
+ instance = {"system_metadata":
+ {"image_xenapi_use_agent": "false"}}
+ self.assertFalse(agent.should_use_agent(instance))
+
+ def test_agent_uses_deafault_when_prop_invalid(self):
+ self.flags(xenapi_use_agent_default=True)
+ instance = {"system_metadata":
+ {"image_xenapi_use_agent": "bob"},
+ "uuid": "uuid"}
+ self.assertTrue(agent.should_use_agent(instance))
+
+ def test_agent_default_not_present(self):
+ self.flags(xenapi_use_agent_default=False)
+ instance = {"system_metadata": {}}
+ self.assertFalse(agent.should_use_agent(instance))
+
+ def test_agent_default_present(self):
+ self.flags(xenapi_use_agent_default=True)
+ instance = {"system_metadata": {}}
+ self.assertTrue(agent.should_use_agent(instance))
diff --git a/nova/tests/virt/xenapi/test_vm_utils.py b/nova/tests/virt/xenapi/test_vm_utils.py
index 2180f75f9..68caab651 100644
--- a/nova/tests/virt/xenapi/test_vm_utils.py
+++ b/nova/tests/virt/xenapi/test_vm_utils.py
@@ -15,15 +15,46 @@
# License for the specific language governing permissions and limitations
# under the License.
-
import contextlib
+
import fixtures
import mox
+from nova.compute import flavors
+from nova import context
+from nova import db
from nova import exception
+from nova.openstack.common import timeutils
from nova import test
+from nova.tests.virt.xenapi import stubs
from nova import utils
+from nova.virt.xenapi import driver as xenapi_conn
+from nova.virt.xenapi import fake
from nova.virt.xenapi import vm_utils
+from nova.virt.xenapi import volume_utils
+
+
+XENSM_TYPE = 'xensm'
+ISCSI_TYPE = 'iscsi'
+
+
+def get_fake_connection_data(sr_type):
+ fakes = {XENSM_TYPE: {'sr_uuid': 'falseSR',
+ 'name_label': 'fake_storage',
+ 'name_description': 'test purposes',
+ 'server': 'myserver',
+ 'serverpath': '/local/scratch/myname',
+ 'sr_type': 'nfs',
+ 'introduce_sr_keys': ['server',
+ 'serverpath',
+ 'sr_type'],
+ 'vdi_uuid': 'falseVDI'},
+ ISCSI_TYPE: {'volume_id': 'fake_volume_id',
+ 'target_lun': 1,
+ 'target_iqn': 'fake_iqn:volume-fake_volume_id',
+ 'target_portal': u'localhost:3260',
+ 'target_discovered': False}, }
+ return fakes[sr_type]
@contextlib.contextmanager
@@ -253,7 +284,7 @@ class FetchVhdImageTestCase(test.TestCase):
self.mox.VerifyAll()
- def test_fetch_vhd_image_cleans_up_vid_on_fail(self):
+ def test_fetch_vhd_image_cleans_up_vdi_on_fail(self):
self._apply_stubouts()
self._common_params_setup(True)
self.mox.StubOutWithMock(self.session, 'call_xenapi')
@@ -267,15 +298,16 @@ class FetchVhdImageTestCase(test.TestCase):
vm_utils.safe_find_sr(self.session).AndReturn("sr")
vm_utils._scan_sr(self.session, "sr")
vm_utils._check_vdi_size(self.context, self.session, self.instance,
- "vdi").AndRaise(exception.ImageTooLarge)
+ "vdi").AndRaise(exception.InstanceTypeDiskTooSmall)
self.session.call_xenapi("VDI.get_by_uuid", "vdi").AndReturn("ref")
vm_utils.destroy_vdi(self.session, "ref")
self.mox.ReplayAll()
- self.assertRaises(exception.ImageTooLarge, vm_utils._fetch_vhd_image,
- self.context, self.session, self.instance, self.image_id)
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ vm_utils._fetch_vhd_image, self.context, self.session,
+ self.instance, self.image_id)
self.mox.VerifyAll()
@@ -333,6 +365,26 @@ class ResizeHelpersTestCase(test.TestCase):
vm_utils._resize_part_and_fs("fake", 0, 20, 10)
+ def test_log_progress_if_required(self):
+ self.mox.StubOutWithMock(vm_utils.LOG, "debug")
+ vm_utils.LOG.debug(_("Sparse copy in progress, "
+ "%(complete_pct).2f%% complete. "
+ "%(left) bytes left to copy"),
+ {"complete_pct": 50.0, "left": 1})
+ current = timeutils.utcnow()
+ timeutils.set_time_override(current)
+ timeutils.advance_time_seconds(vm_utils.PROGRESS_INTERVAL_SECONDS + 1)
+ self.mox.ReplayAll()
+ vm_utils._log_progress_if_required(1, current, 2)
+
+ def test_log_progress_if_not_required(self):
+ self.mox.StubOutWithMock(vm_utils.LOG, "debug")
+ current = timeutils.utcnow()
+ timeutils.set_time_override(current)
+ timeutils.advance_time_seconds(vm_utils.PROGRESS_INTERVAL_SECONDS - 1)
+ self.mox.ReplayAll()
+ vm_utils._log_progress_if_required(1, current, 2)
+
def test_resize_part_and_fs_down_fails_disk_too_big(self):
self.mox.StubOutWithMock(vm_utils, "_repair_filesystem")
self.mox.StubOutWithMock(utils, 'execute')
@@ -364,3 +416,395 @@ class ResizeHelpersTestCase(test.TestCase):
self.mox.ReplayAll()
vm_utils._resize_part_and_fs("fake", 0, 20, 30)
+
+
+class CheckVDISizeTestCase(test.TestCase):
+ def setUp(self):
+ super(CheckVDISizeTestCase, self).setUp()
+ self.context = 'fakecontext'
+ self.session = 'fakesession'
+ self.instance = dict(uuid='fakeinstance')
+ self.vdi_uuid = 'fakeuuid'
+
+ def test_not_too_large(self):
+ self.mox.StubOutWithMock(flavors, 'extract_flavor')
+ flavors.extract_flavor(self.instance).AndReturn(
+ dict(root_gb=1))
+
+ self.mox.StubOutWithMock(vm_utils, '_get_vdi_chain_size')
+ vm_utils._get_vdi_chain_size(self.session,
+ self.vdi_uuid).AndReturn(1073741824)
+
+ self.mox.ReplayAll()
+
+ vm_utils._check_vdi_size(self.context, self.session, self.instance,
+ self.vdi_uuid)
+
+ def test_too_large(self):
+ self.mox.StubOutWithMock(flavors, 'extract_flavor')
+ flavors.extract_flavor(self.instance).AndReturn(
+ dict(root_gb=1))
+
+ self.mox.StubOutWithMock(vm_utils, '_get_vdi_chain_size')
+ vm_utils._get_vdi_chain_size(self.session,
+ self.vdi_uuid).AndReturn(1073741825)
+
+ self.mox.ReplayAll()
+
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ vm_utils._check_vdi_size, self.context, self.session,
+ self.instance, self.vdi_uuid)
+
+ def test_zero_root_gb_disables_check(self):
+ self.mox.StubOutWithMock(flavors, 'extract_flavor')
+ flavors.extract_flavor(self.instance).AndReturn(
+ dict(root_gb=0))
+
+ self.mox.ReplayAll()
+
+ vm_utils._check_vdi_size(self.context, self.session, self.instance,
+ self.vdi_uuid)
+
+
+class GetInstanceForVdisForSrTestCase(stubs.XenAPITestBase):
+ def setUp(self):
+ super(GetInstanceForVdisForSrTestCase, self).setUp()
+ self.flags(disable_process_locking=True,
+ instance_name_template='%d',
+ firewall_driver='nova.virt.xenapi.firewall.'
+ 'Dom0IptablesFirewallDriver',
+ xenapi_connection_url='test_url',
+ xenapi_connection_password='test_pass',)
+
+ def test_get_instance_vdis_for_sr(self):
+ vm_ref = fake.create_vm("foo", "Running")
+ sr_ref = fake.create_sr()
+
+ vdi_1 = fake.create_vdi('vdiname1', sr_ref)
+ vdi_2 = fake.create_vdi('vdiname2', sr_ref)
+
+ for vdi_ref in [vdi_1, vdi_2]:
+ fake.create_vbd(vm_ref, vdi_ref)
+
+ stubs.stubout_session(self.stubs, fake.SessionBase)
+ driver = xenapi_conn.XenAPIDriver(False)
+
+ result = list(vm_utils.get_instance_vdis_for_sr(
+ driver._session, vm_ref, sr_ref))
+
+ self.assertEquals([vdi_1, vdi_2], result)
+
+ def test_get_instance_vdis_for_sr_no_vbd(self):
+ vm_ref = fake.create_vm("foo", "Running")
+ sr_ref = fake.create_sr()
+
+ stubs.stubout_session(self.stubs, fake.SessionBase)
+ driver = xenapi_conn.XenAPIDriver(False)
+
+ result = list(vm_utils.get_instance_vdis_for_sr(
+ driver._session, vm_ref, sr_ref))
+
+ self.assertEquals([], result)
+
+ def test_get_vdi_uuid_for_volume_with_sr_uuid(self):
+ connection_data = get_fake_connection_data(XENSM_TYPE)
+ stubs.stubout_session(self.stubs, fake.SessionBase)
+ driver = xenapi_conn.XenAPIDriver(False)
+
+ vdi_uuid = vm_utils.get_vdi_uuid_for_volume(
+ driver._session, connection_data)
+ self.assertEquals(vdi_uuid, 'falseVDI')
+
+ def test_get_vdi_uuid_for_volume_failure(self):
+ stubs.stubout_session(self.stubs, fake.SessionBase)
+ driver = xenapi_conn.XenAPIDriver(False)
+
+ def bad_introduce_sr(session, sr_uuid, label, sr_params):
+ return None
+
+ self.stubs.Set(volume_utils, 'introduce_sr', bad_introduce_sr)
+ connection_data = get_fake_connection_data(XENSM_TYPE)
+ self.assertRaises(exception.NovaException,
+ vm_utils.get_vdi_uuid_for_volume,
+ driver._session, connection_data)
+
+ def test_get_vdi_uuid_for_volume_from_iscsi_vol_missing_sr_uuid(self):
+ connection_data = get_fake_connection_data(ISCSI_TYPE)
+ stubs.stubout_session(self.stubs, fake.SessionBase)
+ driver = xenapi_conn.XenAPIDriver(False)
+
+ vdi_uuid = vm_utils.get_vdi_uuid_for_volume(
+ driver._session, connection_data)
+ self.assertNotEquals(vdi_uuid, None)
+
+
+class VMRefOrRaiseVMFoundTestCase(test.TestCase):
+
+ def test_lookup_call(self):
+ mock = mox.Mox()
+ mock.StubOutWithMock(vm_utils, 'lookup')
+
+ vm_utils.lookup('session', 'somename').AndReturn('ignored')
+
+ mock.ReplayAll()
+ vm_utils.vm_ref_or_raise('session', 'somename')
+ mock.VerifyAll()
+
+ def test_return_value(self):
+ mock = mox.Mox()
+ mock.StubOutWithMock(vm_utils, 'lookup')
+
+ vm_utils.lookup(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn('vmref')
+
+ mock.ReplayAll()
+ self.assertEquals(
+ 'vmref', vm_utils.vm_ref_or_raise('session', 'somename'))
+ mock.VerifyAll()
+
+
+class VMRefOrRaiseVMNotFoundTestCase(test.TestCase):
+
+ def test_exception_raised(self):
+ mock = mox.Mox()
+ mock.StubOutWithMock(vm_utils, 'lookup')
+
+ vm_utils.lookup('session', 'somename').AndReturn(None)
+
+ mock.ReplayAll()
+ self.assertRaises(
+ exception.InstanceNotFound,
+ lambda: vm_utils.vm_ref_or_raise('session', 'somename')
+ )
+ mock.VerifyAll()
+
+ def test_exception_msg_contains_vm_name(self):
+ mock = mox.Mox()
+ mock.StubOutWithMock(vm_utils, 'lookup')
+
+ vm_utils.lookup('session', 'somename').AndReturn(None)
+
+ mock.ReplayAll()
+ try:
+ vm_utils.vm_ref_or_raise('session', 'somename')
+ except exception.InstanceNotFound as e:
+ self.assertTrue(
+ 'somename' in str(e))
+ mock.VerifyAll()
+
+
+class BittorrentTestCase(stubs.XenAPITestBase):
+ def setUp(self):
+ super(BittorrentTestCase, self).setUp()
+ self.context = context.get_admin_context()
+
+ def test_image_uses_bittorrent(self):
+ sys_meta = {'image_bittorrent': True}
+ instance = db.instance_create(self.context,
+ {'system_metadata': sys_meta})
+ instance = db.instance_get_by_uuid(self.context, instance['uuid'])
+ self.flags(xenapi_torrent_images='some')
+ self.assertTrue(vm_utils._image_uses_bittorrent(self.context,
+ instance))
+
+ def _test_create_image(self, cache_type):
+ sys_meta = {'image_cache_in_nova': True}
+ instance = db.instance_create(self.context,
+ {'system_metadata': sys_meta})
+ instance = db.instance_get_by_uuid(self.context, instance['uuid'])
+ self.flags(cache_images=cache_type)
+
+ was = {'called': None}
+
+ def fake_create_cached_image(*args):
+ was['called'] = 'some'
+ return {}
+ self.stubs.Set(vm_utils, '_create_cached_image',
+ fake_create_cached_image)
+
+ def fake_fetch_image(*args):
+ was['called'] = 'none'
+ return {}
+ self.stubs.Set(vm_utils, '_fetch_image',
+ fake_fetch_image)
+
+ vm_utils._create_image(self.context, None, instance,
+ 'foo', 'bar', 'baz')
+
+ self.assertEqual(was['called'], cache_type)
+
+ def test_create_image_cached(self):
+ self._test_create_image('some')
+
+ def test_create_image_uncached(self):
+ self._test_create_image('none')
+
+
+class CreateVBDTestCase(test.TestCase):
+ def setUp(self):
+ super(CreateVBDTestCase, self).setUp()
+ self.session = FakeSession()
+ self.mock = mox.Mox()
+ self.mock.StubOutWithMock(self.session, 'call_xenapi')
+ self.vbd_rec = self._generate_vbd_rec()
+
+ def _generate_vbd_rec(self):
+ vbd_rec = {}
+ vbd_rec['VM'] = 'vm_ref'
+ vbd_rec['VDI'] = 'vdi_ref'
+ vbd_rec['userdevice'] = '0'
+ vbd_rec['bootable'] = False
+ vbd_rec['mode'] = 'RW'
+ vbd_rec['type'] = 'disk'
+ vbd_rec['unpluggable'] = True
+ vbd_rec['empty'] = False
+ vbd_rec['other_config'] = {}
+ vbd_rec['qos_algorithm_type'] = ''
+ vbd_rec['qos_algorithm_params'] = {}
+ vbd_rec['qos_supported_algorithms'] = []
+ return vbd_rec
+
+ def test_create_vbd_default_args(self):
+ self.session.call_xenapi('VBD.create',
+ self.vbd_rec).AndReturn("vbd_ref")
+ self.mock.ReplayAll()
+
+ result = vm_utils.create_vbd(self.session, "vm_ref", "vdi_ref", 0)
+ self.assertEquals(result, "vbd_ref")
+ self.mock.VerifyAll()
+
+ def test_create_vbd_osvol(self):
+ self.session.call_xenapi('VBD.create',
+ self.vbd_rec).AndReturn("vbd_ref")
+ self.session.call_xenapi('VBD.add_to_other_config', "vbd_ref",
+ "osvol", "True")
+ self.mock.ReplayAll()
+ result = vm_utils.create_vbd(self.session, "vm_ref", "vdi_ref", 0,
+ osvol=True)
+ self.assertEquals(result, "vbd_ref")
+ self.mock.VerifyAll()
+
+ def test_create_vbd_extra_args(self):
+ self.vbd_rec['VDI'] = 'OpaqueRef:NULL'
+ self.vbd_rec['type'] = 'a'
+ self.vbd_rec['mode'] = 'RO'
+ self.vbd_rec['bootable'] = True
+ self.vbd_rec['empty'] = True
+ self.vbd_rec['unpluggable'] = False
+ self.session.call_xenapi('VBD.create',
+ self.vbd_rec).AndReturn("vbd_ref")
+ self.mock.ReplayAll()
+
+ result = vm_utils.create_vbd(self.session, "vm_ref", None, 0,
+ vbd_type="a", read_only=True, bootable=True,
+ empty=True, unpluggable=False)
+ self.assertEquals(result, "vbd_ref")
+ self.mock.VerifyAll()
+
+ def test_attach_cd(self):
+ self.mock.StubOutWithMock(vm_utils, 'create_vbd')
+
+ vm_utils.create_vbd(self.session, "vm_ref", None, 1,
+ vbd_type='cd', read_only=True, bootable=True,
+ empty=True, unpluggable=False).AndReturn("vbd_ref")
+ self.session.call_xenapi('VBD.insert', "vbd_ref", "vdi_ref")
+ self.mock.ReplayAll()
+
+ result = vm_utils.attach_cd(self.session, "vm_ref", "vdi_ref", 1)
+ self.assertEquals(result, "vbd_ref")
+ self.mock.VerifyAll()
+
+
+class VDIOtherConfigTestCase(stubs.XenAPITestBase):
+ """Tests to ensure that the code is populating VDI's `other_config`
+ attribute with the correct metadta.
+ """
+
+ def setUp(self):
+ super(VDIOtherConfigTestCase, self).setUp()
+
+ class _FakeSession():
+ def call_xenapi(self, operation, *args, **kwargs):
+ # VDI.add_to_other_config -> VDI_add_to_other_config
+ method = getattr(self, operation.replace('.', '_'), None)
+ if method:
+ return method(*args, **kwargs)
+
+ self.operation = operation
+ self.args = args
+ self.kwargs = kwargs
+
+ self.session = _FakeSession()
+ self.context = context.get_admin_context()
+ self.fake_instance = {'uuid': 'aaaa-bbbb-cccc-dddd',
+ 'name': 'myinstance'}
+
+ def test_create_vdi(self):
+ # Some images are registered with XenServer explicitly by calling
+ # `create_vdi`
+ vm_utils.create_vdi(self.session, 'sr_ref', self.fake_instance,
+ 'myvdi', 'root', 1024, read_only=True)
+
+ expected = {'nova_disk_type': 'root',
+ 'nova_instance_uuid': 'aaaa-bbbb-cccc-dddd'}
+
+ self.assertEqual(expected, self.session.args[0]['other_config'])
+
+ def test_create_image(self):
+ # Other images are registered implicitly when they are dropped into
+ # the SR by a dom0 plugin or some other process
+ self.flags(cache_images='none')
+
+ def fake_fetch_image(*args):
+ return {'root': {'uuid': 'fake-uuid'}}
+
+ self.stubs.Set(vm_utils, '_fetch_image', fake_fetch_image)
+
+ other_config = {}
+
+ def VDI_add_to_other_config(ref, key, value):
+ other_config[key] = value
+
+ def VDI_get_record(ref):
+ return {'other_config': {}}
+
+ # Stubbing on the session object and not class so we don't pollute
+ # other tests
+ self.session.VDI_add_to_other_config = VDI_add_to_other_config
+ self.session.VDI_get_record = VDI_get_record
+
+ vm_utils._create_image(self.context, self.session, self.fake_instance,
+ 'myvdi', 'image1', vm_utils.ImageType.DISK_VHD)
+
+ expected = {'nova_disk_type': 'root',
+ 'nova_instance_uuid': 'aaaa-bbbb-cccc-dddd'}
+
+ self.assertEqual(expected, other_config)
+
+ def test_move_disks(self):
+ # Migrated images should preserve the `other_config`
+ other_config = {}
+
+ def VDI_add_to_other_config(ref, key, value):
+ other_config[key] = value
+
+ def VDI_get_record(ref):
+ return {'other_config': {}}
+
+ def call_plugin_serialized(*args, **kwargs):
+ return {'root': {'uuid': 'aaaa-bbbb-cccc-dddd'}}
+
+ # Stubbing on the session object and not class so we don't pollute
+ # other tests
+ self.session.VDI_add_to_other_config = VDI_add_to_other_config
+ self.session.VDI_get_record = VDI_get_record
+ self.session.call_plugin_serialized = call_plugin_serialized
+
+ self.stubs.Set(vm_utils, 'get_sr_path', lambda *a, **k: None)
+ self.stubs.Set(vm_utils, 'scan_default_sr', lambda *a, **k: None)
+
+ vm_utils.move_disks(self.session, self.fake_instance, {})
+
+ expected = {'nova_disk_type': 'root',
+ 'nova_instance_uuid': 'aaaa-bbbb-cccc-dddd'}
+
+ self.assertEqual(expected, other_config)
diff --git a/nova/tests/virt/xenapi/test_vmops.py b/nova/tests/virt/xenapi/test_vmops.py
index 18a444f41..674d84882 100644
--- a/nova/tests/virt/xenapi/test_vmops.py
+++ b/nova/tests/virt/xenapi/test_vmops.py
@@ -18,8 +18,12 @@
from nova.compute import task_states
from nova.compute import vm_mode
+from nova import exception
from nova import test
+from nova.tests.virt.xenapi import stubs
from nova.virt import fake
+from nova.virt.xenapi import driver as xenapi_conn
+from nova.virt.xenapi import fake as xenapi_fake
from nova.virt.xenapi import vm_utils
from nova.virt.xenapi import vmops
@@ -166,3 +170,74 @@ class VMOpsTestCase(test.TestCase):
self.assertTrue(self._vmops._is_xsm_sr_check_relaxed())
self.assertEqual(self.make_plugin_call_count, 1)
+
+
+class GetConsoleOutputTestCase(stubs.XenAPITestBase):
+ def setUp(self):
+ super(GetConsoleOutputTestCase, self).setUp()
+ stubs.stubout_session(self.stubs, xenapi_fake.SessionBase)
+ self._session = xenapi_conn.XenAPISession('test_url', 'root',
+ 'test_pass', fake.FakeVirtAPI())
+ self.vmops = vmops.VMOps(self._session, fake.FakeVirtAPI())
+ self.vms = []
+
+ def tearDown(self):
+ super(GetConsoleOutputTestCase, self).tearDown()
+ for vm in self.vms:
+ xenapi_fake.destroy_vm(vm)
+
+ def _create_vm(self, name, state):
+ vm = xenapi_fake.create_vm(name, state)
+ self.vms.append(vm)
+ return vm
+
+ def test_get_console_output_works(self):
+ self.mox.StubOutWithMock(self.vmops, '_get_dom_id')
+
+ instance = {"name": "dummy"}
+ self.vmops._get_dom_id(instance, check_rescue=True).AndReturn(42)
+ self.mox.ReplayAll()
+
+ self.assertEqual("dom_id: 42", self.vmops.get_console_output(instance))
+
+ def test_get_console_output_throws_nova_exception(self):
+ self.mox.StubOutWithMock(self.vmops, '_get_dom_id')
+
+ instance = {"name": "dummy"}
+ # dom_id=0 used to trigger exception in fake XenAPI
+ self.vmops._get_dom_id(instance, check_rescue=True).AndReturn(0)
+ self.mox.ReplayAll()
+
+ self.assertRaises(exception.NovaException,
+ self.vmops.get_console_output, instance)
+
+ def test_get_dom_id_works(self):
+ instance = {"name": "dummy"}
+ vm_ref = self._create_vm("dummy", "Running")
+ vm_rec = xenapi_fake.get_record("VM", vm_ref)
+
+ self.assertEqual(vm_rec["domid"], self.vmops._get_dom_id(instance))
+
+ def test_get_dom_id_works_with_rescue_vm(self):
+ instance = {"name": "dummy"}
+ vm_ref = self._create_vm("dummy-rescue", "Running")
+ vm_rec = xenapi_fake.get_record("VM", vm_ref)
+
+ self.assertEqual(vm_rec["domid"],
+ self.vmops._get_dom_id(instance, check_rescue=True))
+
+ def test_get_dom_id_raises_not_found(self):
+ instance = {"name": "dummy"}
+ vm_ref = self._create_vm("notdummy", "Running")
+ vm_rec = xenapi_fake.get_record("VM", vm_ref)
+
+ self.assertRaises(exception.NotFound,
+ self.vmops._get_dom_id, instance)
+
+ def test_get_dom_id_works_with_vmref(self):
+ instance = {"name": "dummy"}
+ vm_ref = self._create_vm("dummy", "Running")
+ vm_rec = xenapi_fake.get_record("VM", vm_ref)
+
+ self.assertEqual(vm_rec["domid"],
+ self.vmops._get_dom_id(vm_ref=vm_ref))
diff --git a/nova/tests/virt/xenapi/test_volumeops.py b/nova/tests/virt/xenapi/test_volumeops.py
index 5d4344bb0..1f94d21e3 100644
--- a/nova/tests/virt/xenapi/test_volumeops.py
+++ b/nova/tests/virt/xenapi/test_volumeops.py
@@ -17,7 +17,7 @@
import collections
from nova import test
-from nova.tests.xenapi import stubs
+from nova.tests.virt.xenapi import stubs
from nova.virt.xenapi import volumeops
diff --git a/nova/tests/test_xenapi.py b/nova/tests/virt/xenapi/test_xenapi.py
index 2628f2582..d99fdcb8e 100644
--- a/nova/tests/test_xenapi.py
+++ b/nova/tests/virt/xenapi/test_xenapi.py
@@ -42,7 +42,7 @@ from nova.tests import fake_network
from nova.tests import fake_processutils
import nova.tests.image.fake as fake_image
from nova.tests import matchers
-from nova.tests.xenapi import stubs
+from nova.tests.virt.xenapi import stubs
from nova.virt import fake
from nova.virt.xenapi import agent
from nova.virt.xenapi import driver as xenapi_conn
@@ -179,7 +179,7 @@ def stub_vm_utils_with_vdi_attached_here(function, should_return=True):
def create_instance_with_system_metadata(context, instance_values):
instance_type = db.instance_type_get(context,
instance_values['instance_type_id'])
- sys_meta = flavors.save_instance_type_info({},
+ sys_meta = flavors.save_flavor_info({},
instance_type)
instance_values['system_metadata'] = sys_meta
return db.instance_create(context, instance_values)
@@ -308,6 +308,7 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
"""Unit tests for VM operations."""
def setUp(self):
super(XenAPIVMTestCase, self).setUp()
+ self.useFixture(test.SampleNetworks())
self.network = importutils.import_object(CONF.network_manager)
self.flags(disable_process_locking=True,
instance_name_template='%d',
@@ -396,7 +397,7 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
def test_get_diagnostics(self):
def fake_get_rrd(host, vm_uuid):
path = os.path.dirname(os.path.realpath(__file__))
- with open(os.path.join(path, 'xenapi/vm_rrd.xml')) as f:
+ with open(os.path.join(path, 'vm_rrd.xml')) as f:
return re.sub(r'\s', '', f.read())
self.stubs.Set(vm_utils, '_get_rrd', fake_get_rrd)
@@ -972,6 +973,7 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
def test_spawn_ssh_key_injection(self):
# Test spawning with key_data on an instance. Should use
# agent file injection.
+ self.flags(xenapi_use_agent_default=True)
actual_injected_files = []
def fake_inject_file(self, method, args):
@@ -999,6 +1001,7 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
def test_spawn_injected_files(self):
# Test spawning with injected_files.
+ self.flags(xenapi_use_agent_default=True)
actual_injected_files = []
def fake_inject_file(self, method, args):
@@ -1067,7 +1070,8 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
def __init__(self):
self.finish_revert_migration_called = False
- def finish_revert_migration(self, instance, block_info):
+ def finish_revert_migration(self, instance, block_info,
+ power_on):
self.finish_revert_migration_called = True
conn = xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)
@@ -1117,6 +1121,17 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
conn.reboot(self.context, instance, None, "SOFT")
+ def test_get_console_output_succeeds(self):
+
+ def fake_get_console_output(instance):
+ self.assertEqual("instance", instance)
+ return "console_log"
+ self.stubs.Set(self.conn._vmops, 'get_console_output',
+ fake_get_console_output)
+
+ self.assertEqual(self.conn.get_console_output("instance"),
+ "console_log")
+
def _test_maintenance_mode(self, find_host, find_aggregate):
real_call_xenapi = self.conn._session.call_xenapi
instance = self._create_instance(spawn=True)
@@ -1188,7 +1203,7 @@ class XenAPIVMTestCase(stubs.XenAPITestBase):
def test_per_instance_usage_running(self):
instance = self._create_instance(spawn=True)
- instance_type = flavors.get_instance_type(3)
+ instance_type = flavors.get_flavor(3)
expected = {instance['uuid']: {'memory_mb': instance_type['memory_mb'],
'uuid': instance['uuid']}}
@@ -1389,7 +1404,7 @@ class XenAPIMigrateInstance(stubs.XenAPITestBase):
self.context, instance,
'127.0.0.1', instance_type, None)
- def test_revert_migrate(self):
+ def _test_revert_migrate(self, power_on):
instance = create_instance_with_system_metadata(self.context,
self.instance_values)
self.called = False
@@ -1424,14 +1439,21 @@ class XenAPIMigrateInstance(stubs.XenAPITestBase):
cow_uuid = xenapi_fake.get_record('VDI', cow)['uuid']
conn.finish_migration(self.context, self.migration, instance,
dict(base_copy=base_uuid, cow=cow_uuid),
- network_info, image_meta, resize_instance=True)
+ network_info, image_meta, resize_instance=True,
+ block_device_info=None, power_on=power_on)
self.assertEqual(self.called, True)
- self.assertEqual(self.fake_vm_start_called, True)
+ self.assertEqual(self.fake_vm_start_called, power_on)
conn.finish_revert_migration(instance, network_info)
self.assertEqual(self.fake_finish_revert_migration_called, True)
- def test_finish_migrate(self):
+ def test_revert_migrate_power_on(self):
+ self._test_revert_migrate(True)
+
+ def test_revert_migrate_power_off(self):
+ self._test_revert_migrate(False)
+
+ def _test_finish_migrate(self, power_on):
instance = create_instance_with_system_metadata(self.context,
self.instance_values)
self.called = False
@@ -1456,12 +1478,19 @@ class XenAPIMigrateInstance(stubs.XenAPITestBase):
image_meta = {'id': instance['image_ref'], 'disk_format': 'vhd'}
conn.finish_migration(self.context, self.migration, instance,
dict(base_copy='hurr', cow='durr'),
- network_info, image_meta, resize_instance=True)
+ network_info, image_meta, resize_instance=True,
+ block_device_info=None, power_on=power_on)
self.assertEqual(self.called, True)
- self.assertEqual(self.fake_vm_start_called, True)
+ self.assertEqual(self.fake_vm_start_called, power_on)
+
+ def test_finish_migrate_power_on(self):
+ self._test_finish_migrate(True)
+
+ def test_finish_migrate_power_off(self):
+ self._test_finish_migrate(False)
def test_finish_migrate_no_local_storage(self):
- tiny_type = flavors.get_instance_type_by_name('m1.tiny')
+ tiny_type = flavors.get_flavor_by_name('m1.tiny')
tiny_type_id = tiny_type['id']
self.instance_values.update({'instance_type_id': tiny_type_id,
'root_gb': 0})
diff --git a/nova/tests/xenapi/vm_rrd.xml b/nova/tests/virt/xenapi/vm_rrd.xml
index f9a7c8083..f9a7c8083 100644
--- a/nova/tests/xenapi/vm_rrd.xml
+++ b/nova/tests/virt/xenapi/vm_rrd.xml
diff --git a/nova/tests/xenapi/test_vm_utils.py b/nova/tests/xenapi/test_vm_utils.py
deleted file mode 100644
index 694be1713..000000000
--- a/nova/tests/xenapi/test_vm_utils.py
+++ /dev/null
@@ -1,377 +0,0 @@
-import mox
-from nova import context
-from nova import db
-from nova import exception
-from nova import test
-from nova.tests.xenapi import stubs
-from nova.virt.xenapi import driver as xenapi_conn
-from nova.virt.xenapi import fake
-from nova.virt.xenapi import vm_utils
-from nova.virt.xenapi import volume_utils
-
-
-XENSM_TYPE = 'xensm'
-ISCSI_TYPE = 'iscsi'
-
-
-class FakeSession():
- def call_xenapi(self, operation, *args, **kwargs):
- # VDI.add_to_other_config -> VDI_add_to_other_config
- method = getattr(self, operation.replace('.', '_'), None)
- if method:
- return method(*args, **kwargs)
-
- self.operation = operation
- self.args = args
- self.kwargs = kwargs
-
-
-def get_fake_connection_data(sr_type):
- fakes = {XENSM_TYPE: {'sr_uuid': 'falseSR',
- 'name_label': 'fake_storage',
- 'name_description': 'test purposes',
- 'server': 'myserver',
- 'serverpath': '/local/scratch/myname',
- 'sr_type': 'nfs',
- 'introduce_sr_keys': ['server',
- 'serverpath',
- 'sr_type'],
- 'vdi_uuid': 'falseVDI'},
- ISCSI_TYPE: {'volume_id': 'fake_volume_id',
- 'target_lun': 1,
- 'target_iqn': 'fake_iqn:volume-fake_volume_id',
- 'target_portal': u'localhost:3260',
- 'target_discovered': False}, }
- return fakes[sr_type]
-
-
-class GetInstanceForVdisForSrTestCase(stubs.XenAPITestBase):
- def setUp(self):
- super(GetInstanceForVdisForSrTestCase, self).setUp()
- self.flags(disable_process_locking=True,
- instance_name_template='%d',
- firewall_driver='nova.virt.xenapi.firewall.'
- 'Dom0IptablesFirewallDriver',
- xenapi_connection_url='test_url',
- xenapi_connection_password='test_pass',)
-
- def test_get_instance_vdis_for_sr(self):
- vm_ref = fake.create_vm("foo", "Running")
- sr_ref = fake.create_sr()
-
- vdi_1 = fake.create_vdi('vdiname1', sr_ref)
- vdi_2 = fake.create_vdi('vdiname2', sr_ref)
-
- for vdi_ref in [vdi_1, vdi_2]:
- fake.create_vbd(vm_ref, vdi_ref)
-
- stubs.stubout_session(self.stubs, fake.SessionBase)
- driver = xenapi_conn.XenAPIDriver(False)
-
- result = list(vm_utils.get_instance_vdis_for_sr(
- driver._session, vm_ref, sr_ref))
-
- self.assertEquals([vdi_1, vdi_2], result)
-
- def test_get_instance_vdis_for_sr_no_vbd(self):
- vm_ref = fake.create_vm("foo", "Running")
- sr_ref = fake.create_sr()
-
- stubs.stubout_session(self.stubs, fake.SessionBase)
- driver = xenapi_conn.XenAPIDriver(False)
-
- result = list(vm_utils.get_instance_vdis_for_sr(
- driver._session, vm_ref, sr_ref))
-
- self.assertEquals([], result)
-
- def test_get_vdi_uuid_for_volume_with_sr_uuid(self):
- connection_data = get_fake_connection_data(XENSM_TYPE)
- stubs.stubout_session(self.stubs, fake.SessionBase)
- driver = xenapi_conn.XenAPIDriver(False)
-
- vdi_uuid = vm_utils.get_vdi_uuid_for_volume(
- driver._session, connection_data)
- self.assertEquals(vdi_uuid, 'falseVDI')
-
- def test_get_vdi_uuid_for_volume_failure(self):
- stubs.stubout_session(self.stubs, fake.SessionBase)
- driver = xenapi_conn.XenAPIDriver(False)
-
- def bad_introduce_sr(session, sr_uuid, label, sr_params):
- return None
-
- self.stubs.Set(volume_utils, 'introduce_sr', bad_introduce_sr)
- connection_data = get_fake_connection_data(XENSM_TYPE)
- self.assertRaises(exception.NovaException,
- vm_utils.get_vdi_uuid_for_volume,
- driver._session, connection_data)
-
- def test_get_vdi_uuid_for_volume_from_iscsi_vol_missing_sr_uuid(self):
- connection_data = get_fake_connection_data(ISCSI_TYPE)
- stubs.stubout_session(self.stubs, fake.SessionBase)
- driver = xenapi_conn.XenAPIDriver(False)
-
- vdi_uuid = vm_utils.get_vdi_uuid_for_volume(
- driver._session, connection_data)
- self.assertNotEquals(vdi_uuid, None)
-
-
-class VMRefOrRaiseVMFoundTestCase(test.TestCase):
-
- def test_lookup_call(self):
- mock = mox.Mox()
- mock.StubOutWithMock(vm_utils, 'lookup')
-
- vm_utils.lookup('session', 'somename').AndReturn('ignored')
-
- mock.ReplayAll()
- vm_utils.vm_ref_or_raise('session', 'somename')
- mock.VerifyAll()
-
- def test_return_value(self):
- mock = mox.Mox()
- mock.StubOutWithMock(vm_utils, 'lookup')
-
- vm_utils.lookup(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn('vmref')
-
- mock.ReplayAll()
- self.assertEquals(
- 'vmref', vm_utils.vm_ref_or_raise('session', 'somename'))
- mock.VerifyAll()
-
-
-class VMRefOrRaiseVMNotFoundTestCase(test.TestCase):
-
- def test_exception_raised(self):
- mock = mox.Mox()
- mock.StubOutWithMock(vm_utils, 'lookup')
-
- vm_utils.lookup('session', 'somename').AndReturn(None)
-
- mock.ReplayAll()
- self.assertRaises(
- exception.InstanceNotFound,
- lambda: vm_utils.vm_ref_or_raise('session', 'somename')
- )
- mock.VerifyAll()
-
- def test_exception_msg_contains_vm_name(self):
- mock = mox.Mox()
- mock.StubOutWithMock(vm_utils, 'lookup')
-
- vm_utils.lookup('session', 'somename').AndReturn(None)
-
- mock.ReplayAll()
- try:
- vm_utils.vm_ref_or_raise('session', 'somename')
- except exception.InstanceNotFound as e:
- self.assertTrue(
- 'somename' in str(e))
- mock.VerifyAll()
-
-
-class BittorrentTestCase(stubs.XenAPITestBase):
- def setUp(self):
- super(BittorrentTestCase, self).setUp()
- self.context = context.get_admin_context()
-
- def test_image_uses_bittorrent(self):
- sys_meta = {'image_bittorrent': True}
- instance = db.instance_create(self.context,
- {'system_metadata': sys_meta})
- instance = db.instance_get_by_uuid(self.context, instance['uuid'])
- self.flags(xenapi_torrent_images='some')
- self.assertTrue(vm_utils._image_uses_bittorrent(self.context,
- instance))
-
- def _test_create_image(self, cache_type):
- sys_meta = {'image_cache_in_nova': True}
- instance = db.instance_create(self.context,
- {'system_metadata': sys_meta})
- instance = db.instance_get_by_uuid(self.context, instance['uuid'])
- self.flags(cache_images=cache_type)
-
- was = {'called': None}
-
- def fake_create_cached_image(*args):
- was['called'] = 'some'
- return {}
- self.stubs.Set(vm_utils, '_create_cached_image',
- fake_create_cached_image)
-
- def fake_fetch_image(*args):
- was['called'] = 'none'
- return {}
- self.stubs.Set(vm_utils, '_fetch_image',
- fake_fetch_image)
-
- vm_utils._create_image(self.context, None, instance,
- 'foo', 'bar', 'baz')
-
- self.assertEqual(was['called'], cache_type)
-
- def test_create_image_cached(self):
- self._test_create_image('some')
-
- def test_create_image_uncached(self):
- self._test_create_image('none')
-
-
-class CreateVBDTestCase(test.TestCase):
- def setUp(self):
- super(CreateVBDTestCase, self).setUp()
- self.session = FakeSession()
- self.mock = mox.Mox()
- self.mock.StubOutWithMock(self.session, 'call_xenapi')
- self.vbd_rec = self._generate_vbd_rec()
-
- def _generate_vbd_rec(self):
- vbd_rec = {}
- vbd_rec['VM'] = 'vm_ref'
- vbd_rec['VDI'] = 'vdi_ref'
- vbd_rec['userdevice'] = '0'
- vbd_rec['bootable'] = False
- vbd_rec['mode'] = 'RW'
- vbd_rec['type'] = 'disk'
- vbd_rec['unpluggable'] = True
- vbd_rec['empty'] = False
- vbd_rec['other_config'] = {}
- vbd_rec['qos_algorithm_type'] = ''
- vbd_rec['qos_algorithm_params'] = {}
- vbd_rec['qos_supported_algorithms'] = []
- return vbd_rec
-
- def test_create_vbd_default_args(self):
- self.session.call_xenapi('VBD.create',
- self.vbd_rec).AndReturn("vbd_ref")
- self.mock.ReplayAll()
-
- result = vm_utils.create_vbd(self.session, "vm_ref", "vdi_ref", 0)
- self.assertEquals(result, "vbd_ref")
- self.mock.VerifyAll()
-
- def test_create_vbd_osvol(self):
- self.session.call_xenapi('VBD.create',
- self.vbd_rec).AndReturn("vbd_ref")
- self.session.call_xenapi('VBD.add_to_other_config', "vbd_ref",
- "osvol", "True")
- self.mock.ReplayAll()
- result = vm_utils.create_vbd(self.session, "vm_ref", "vdi_ref", 0,
- osvol=True)
- self.assertEquals(result, "vbd_ref")
- self.mock.VerifyAll()
-
- def test_create_vbd_extra_args(self):
- self.vbd_rec['VDI'] = 'OpaqueRef:NULL'
- self.vbd_rec['type'] = 'a'
- self.vbd_rec['mode'] = 'RO'
- self.vbd_rec['bootable'] = True
- self.vbd_rec['empty'] = True
- self.vbd_rec['unpluggable'] = False
- self.session.call_xenapi('VBD.create',
- self.vbd_rec).AndReturn("vbd_ref")
- self.mock.ReplayAll()
-
- result = vm_utils.create_vbd(self.session, "vm_ref", None, 0,
- vbd_type="a", read_only=True, bootable=True,
- empty=True, unpluggable=False)
- self.assertEquals(result, "vbd_ref")
- self.mock.VerifyAll()
-
- def test_attach_cd(self):
- self.mock.StubOutWithMock(vm_utils, 'create_vbd')
-
- vm_utils.create_vbd(self.session, "vm_ref", None, 1,
- vbd_type='cd', read_only=True, bootable=True,
- empty=True, unpluggable=False).AndReturn("vbd_ref")
- self.session.call_xenapi('VBD.insert', "vbd_ref", "vdi_ref")
- self.mock.ReplayAll()
-
- result = vm_utils.attach_cd(self.session, "vm_ref", "vdi_ref", 1)
- self.assertEquals(result, "vbd_ref")
- self.mock.VerifyAll()
-
-
-class VDIOtherConfigTestCase(stubs.XenAPITestBase):
- """Tests to ensure that the code is populating VDI's `other_config`
- attribute with the correct metadta.
- """
-
- def setUp(self):
- super(VDIOtherConfigTestCase, self).setUp()
- self.session = FakeSession()
- self.context = context.get_admin_context()
- self.fake_instance = {'uuid': 'aaaa-bbbb-cccc-dddd',
- 'name': 'myinstance'}
-
- def test_create_vdi(self):
- # Some images are registered with XenServer explicitly by calling
- # `create_vdi`
- vm_utils.create_vdi(self.session, 'sr_ref', self.fake_instance,
- 'myvdi', 'root', 1024, read_only=True)
-
- expected = {'nova_disk_type': 'root',
- 'nova_instance_uuid': 'aaaa-bbbb-cccc-dddd'}
-
- self.assertEqual(expected, self.session.args[0]['other_config'])
-
- def test_create_image(self):
- # Other images are registered implicitly when they are dropped into
- # the SR by a dom0 plugin or some other process
- self.flags(cache_images='none')
-
- def fake_fetch_image(*args):
- return {'root': {'uuid': 'fake-uuid'}}
-
- self.stubs.Set(vm_utils, '_fetch_image', fake_fetch_image)
-
- other_config = {}
-
- def VDI_add_to_other_config(ref, key, value):
- other_config[key] = value
-
- def VDI_get_record(ref):
- return {'other_config': {}}
-
- # Stubbing on the session object and not class so we don't pollute
- # other tests
- self.session.VDI_add_to_other_config = VDI_add_to_other_config
- self.session.VDI_get_record = VDI_get_record
-
- vm_utils._create_image(self.context, self.session, self.fake_instance,
- 'myvdi', 'image1', vm_utils.ImageType.DISK_VHD)
-
- expected = {'nova_disk_type': 'root',
- 'nova_instance_uuid': 'aaaa-bbbb-cccc-dddd'}
-
- self.assertEqual(expected, other_config)
-
- def test_move_disks(self):
- # Migrated images should preserve the `other_config`
- other_config = {}
-
- def VDI_add_to_other_config(ref, key, value):
- other_config[key] = value
-
- def VDI_get_record(ref):
- return {'other_config': {}}
-
- def call_plugin_serialized(*args, **kwargs):
- return {'root': {'uuid': 'aaaa-bbbb-cccc-dddd'}}
-
- # Stubbing on the session object and not class so we don't pollute
- # other tests
- self.session.VDI_add_to_other_config = VDI_add_to_other_config
- self.session.VDI_get_record = VDI_get_record
- self.session.call_plugin_serialized = call_plugin_serialized
-
- self.stubs.Set(vm_utils, 'get_sr_path', lambda *a, **k: None)
- self.stubs.Set(vm_utils, 'scan_default_sr', lambda *a, **k: None)
-
- vm_utils.move_disks(self.session, self.fake_instance, {})
-
- expected = {'nova_disk_type': 'root',
- 'nova_instance_uuid': 'aaaa-bbbb-cccc-dddd'}
-
- self.assertEqual(expected, other_config)
diff --git a/nova/utils.py b/nova/utils.py
index 3e9d8c597..9067488d5 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -37,6 +37,7 @@ import tempfile
import time
from xml.sax import saxutils
+import eventlet
import netaddr
from oslo.config import cfg
@@ -67,9 +68,6 @@ utils_opts = [
cfg.IntOpt('password_length',
default=12,
help='Length of generated instance admin passwords'),
- cfg.BoolOpt('disable_process_locking',
- default=False,
- help='Whether to disable inter-process locks'),
cfg.StrOpt('instance_usage_audit_period',
default='month',
help='time period to generate instance usages for. '
@@ -920,14 +918,16 @@ def temporary_chown(path, owner_uid=None):
@contextlib.contextmanager
def tempdir(**kwargs):
- tempfile.tempdir = CONF.tempdir
- tmpdir = tempfile.mkdtemp(**kwargs)
+ argdict = kwargs.copy()
+ if 'dir' not in argdict:
+ argdict['dir'] = CONF.tempdir
+ tmpdir = tempfile.mkdtemp(**argdict)
try:
yield tmpdir
finally:
try:
shutil.rmtree(tmpdir)
- except OSError, e:
+ except OSError as e:
LOG.error(_('Could not remove tmpdir: %s'), str(e))
@@ -1007,7 +1007,7 @@ def last_bytes(file_like_object, num):
try:
file_like_object.seek(-num, os.SEEK_END)
- except IOError, e:
+ except IOError as e:
if e.errno == 22:
file_like_object.seek(0, os.SEEK_SET)
else:
@@ -1032,6 +1032,13 @@ def dict_to_metadata(metadata):
return result
+def instance_sys_meta(instance):
+ if isinstance(instance['system_metadata'], dict):
+ return instance['system_metadata']
+ else:
+ return metadata_to_dict(instance['system_metadata'])
+
+
def get_wrapped_function(function):
"""Get the method at the bottom of a stack of decorators."""
if not hasattr(function, 'func_closure') or not function.func_closure:
@@ -1067,7 +1074,7 @@ class ExceptionHelper(object):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
- except rpc_common.ClientException, e:
+ except rpc_common.ClientException as e:
raise (e._exc_info[1], None, e._exc_info[2])
return wrapper
@@ -1092,3 +1099,12 @@ def check_string_length(value, name, min_length=0, max_length=None):
msg = _("%(name)s has more than %(max_length)s "
"characters.") % locals()
raise exception.InvalidInput(message=msg)
+
+
+def spawn_n(func, *args, **kwargs):
+ """Passthrough method for eventlet.spawn_n.
+
+ This utility exists so that it can be stubbed for testing without
+ interfering with the service spawns.
+ """
+ eventlet.spawn_n(func, *args, **kwargs)
diff --git a/nova/virt/baremetal/ipmi.py b/nova/virt/baremetal/ipmi.py
index 5d4f2b0ed..73d871e42 100644
--- a/nova/virt/baremetal/ipmi.py
+++ b/nova/virt/baremetal/ipmi.py
@@ -184,7 +184,7 @@ class IPMI(base.PowerManager):
def _set_pxe_for_next_boot(self):
try:
- self._exec_ipmitool("chassis bootdev pxe")
+ self._exec_ipmitool("chassis bootdev pxe options=persistent")
except Exception:
LOG.exception(_("IPMI set next bootdev failed"))
diff --git a/nova/virt/baremetal/pxe.py b/nova/virt/baremetal/pxe.py
index 4c63f2b07..6a5a5ece5 100644
--- a/nova/virt/baremetal/pxe.py
+++ b/nova/virt/baremetal/pxe.py
@@ -174,7 +174,7 @@ def get_pxe_config_file_path(instance):
def get_partition_sizes(instance):
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
root_mb = instance_type['root_gb'] * 1024
swap_mb = instance_type['swap']
diff --git a/nova/virt/baremetal/tilera.py b/nova/virt/baremetal/tilera.py
index d9a065bf1..64335298c 100755
--- a/nova/virt/baremetal/tilera.py
+++ b/nova/virt/baremetal/tilera.py
@@ -35,22 +35,13 @@ from nova.virt.baremetal import base
from nova.virt.baremetal import db
from nova.virt.baremetal import utils as bm_utils
-tilera_opts = [
- cfg.StrOpt('net_config_template',
- default='$pybasedir/nova/virt/baremetal/'
- 'net-dhcp.ubuntu.template',
- help='Template file for injected network config'),
- ]
LOG = logging.getLogger(__name__)
-baremetal_group = cfg.OptGroup(name='baremetal',
- title='Baremetal Options')
-
CONF = cfg.CONF
-CONF.register_group(baremetal_group)
-CONF.register_opts(tilera_opts, baremetal_group)
CONF.import_opt('use_ipv6', 'nova.netconf')
+CONF.import_opt('net_config_template', 'nova.virt.baremetal.pxe',
+ group='baremetal')
CHEETAH = None
@@ -117,7 +108,7 @@ def get_tilera_nfs_path(node_id):
def get_partition_sizes(instance):
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
root_mb = instance_type['root_gb'] * 1024
swap_mb = instance_type['swap']
diff --git a/nova/virt/disk/api.py b/nova/virt/disk/api.py
index c20f2c71a..9fdec0e87 100755
--- a/nova/virt/disk/api.py
+++ b/nova/virt/disk/api.py
@@ -374,7 +374,7 @@ def inject_data_into_fs(fs, key, net, metadata, admin_password, files,
if inject in mandatory:
raise
LOG.warn(_('Ignoring error injecting %(inject)s into image '
- '(%(e)s)'), {'e': e})
+ '(%(e)s)'), {'e': e, 'inject': inject})
status = False
return status
diff --git a/nova/virt/driver.py b/nova/virt/driver.py
index d0a670a3e..6f79de048 100755
--- a/nova/virt/driver.py
+++ b/nova/virt/driver.py
@@ -343,14 +343,23 @@ class ComputeDriver(object):
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance,
- block_device_info=None):
- """Completes a resize, turning on the migrated instance
+ block_device_info=None, power_on=True):
+ """Completes a resize.
+ :param context: the context for the migration/resize
+ :param migration: the migrate/resize information
+ :param instance: the instance being migrated/resized
+ :param disk_info: the newly transferred disk information
:param network_info:
:py:meth:`~nova.network.manager.NetworkManager.get_instance_nw_info`
:param image_meta: image object returned by nova.image.glance that
defines the image from which this instance
was created
+ :param resize_instance: True if the instance is being resized,
+ False otherwise
+ :param block_device_info: instance volume block device info
+ :param power_on: True if the instance should be powered on, False
+ otherwise
"""
raise NotImplementedError()
@@ -360,8 +369,17 @@ class ComputeDriver(object):
raise NotImplementedError()
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
- """Finish reverting a resize, powering back on the instance."""
+ block_device_info=None, power_on=True):
+ """
+ Finish reverting a resize.
+
+ :param instance: the instance being migrated/resized
+ :param network_info:
+ :py:meth:`~nova.network.manager.NetworkManager.get_instance_nw_info`
+ :param block_device_info: instance volume block device info
+ :param power_on: True if the instance should be powered on, False
+ otherwise
+ """
# TODO(Vek): Need to pass context in for access to auth_token
raise NotImplementedError()
@@ -964,4 +982,4 @@ def load_compute_driver(virtapi, compute_driver=None):
def compute_driver_matches(match):
- return CONF.compute_driver.endswith(match)
+ return CONF.compute_driver and CONF.compute_driver.endswith(match)
diff --git a/nova/virt/fake.py b/nova/virt/fake.py
index c38dc9ed6..7973c1b1d 100755
--- a/nova/virt/fake.py
+++ b/nova/virt/fake.py
@@ -170,7 +170,7 @@ class FakeDriver(driver.ComputeDriver):
pass
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
+ block_device_info=None, power_on=True):
pass
def post_live_migration_at_destination(self, context, instance,
@@ -368,7 +368,7 @@ class FakeDriver(driver.ComputeDriver):
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance,
- block_device_info=None):
+ block_device_info=None, power_on=True):
return
def confirm_migration(self, migration, instance, network_info):
@@ -462,7 +462,7 @@ class FakeVirtAPI(virtapi.VirtAPI):
return db.aggregate_metadata_delete(context, aggregate['id'], key)
def security_group_get_by_instance(self, context, instance):
- return db.security_group_get_by_instance(context, instance['id'])
+ return db.security_group_get_by_instance(context, instance['uuid'])
def security_group_rule_get_by_security_group(self, context,
security_group):
diff --git a/nova/virt/hyperv/driver.py b/nova/virt/hyperv/driver.py
index 477f8fa2a..675f36f54 100755
--- a/nova/virt/hyperv/driver.py
+++ b/nova/virt/hyperv/driver.py
@@ -172,17 +172,17 @@ class HyperVDriver(driver.ComputeDriver):
self._migrationops.confirm_migration(migration, instance, network_info)
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
+ block_device_info=None, power_on=True):
self._migrationops.finish_revert_migration(instance, network_info,
- block_device_info)
+ block_device_info, power_on)
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance=False,
- block_device_info=None):
+ block_device_info=None, power_on=True):
self._migrationops.finish_migration(context, migration, instance,
disk_info, network_info,
image_meta, resize_instance,
- block_device_info)
+ block_device_info, power_on)
def get_host_ip_addr(self):
return self._hostops.get_host_ip_addr()
diff --git a/nova/virt/hyperv/imagecache.py b/nova/virt/hyperv/imagecache.py
index 85588a769..8f29a62dc 100644
--- a/nova/virt/hyperv/imagecache.py
+++ b/nova/virt/hyperv/imagecache.py
@@ -52,7 +52,7 @@ class ImageCache(object):
def _get_root_vhd_size_gb(self, instance):
try:
# In case of resizes we need the old root disk size
- old_instance_type = flavors.extract_instance_type(
+ old_instance_type = flavors.extract_flavor(
instance, prefix='old_')
return old_instance_type['root_gb']
except KeyError:
diff --git a/nova/virt/hyperv/migrationops.py b/nova/virt/hyperv/migrationops.py
index ff8651efe..5ce092bf3 100644
--- a/nova/virt/hyperv/migrationops.py
+++ b/nova/virt/hyperv/migrationops.py
@@ -144,7 +144,7 @@ class MigrationOps(object):
self._pathutils.rename(revert_path, instance_path)
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
+ block_device_info=None, power_on=True):
LOG.debug(_("finish_revert_migration called"), instance=instance)
instance_name = instance['name']
@@ -157,7 +157,8 @@ class MigrationOps(object):
self._vmops.create_instance(instance, network_info, block_device_info,
root_vhd_path)
- self._vmops.power_on(instance)
+ if power_on:
+ self._vmops.power_on(instance)
def _merge_base_vhd(self, diff_vhd_path, base_vhd_path):
base_vhd_copy_path = os.path.join(os.path.dirname(diff_vhd_path),
@@ -209,7 +210,7 @@ class MigrationOps(object):
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance=False,
- block_device_info=None):
+ block_device_info=None, power_on=True):
LOG.debug(_("finish_migration called"), instance=instance)
instance_name = instance['name']
@@ -239,4 +240,5 @@ class MigrationOps(object):
self._vmops.create_instance(instance, network_info, block_device_info,
root_vhd_path)
- self._vmops.power_on(instance)
+ if power_on:
+ self._vmops.power_on(instance)
diff --git a/nova/virt/libvirt/blockinfo.py b/nova/virt/libvirt/blockinfo.py
index 39b6292b1..3e9e359e6 100644
--- a/nova/virt/libvirt/blockinfo.py
+++ b/nova/virt/libvirt/blockinfo.py
@@ -300,7 +300,7 @@ def get_disk_mapping(virt_type, instance,
Returns the guest disk mapping for the devices."""
- inst_type = flavors.extract_instance_type(instance)
+ inst_type = flavors.extract_flavor(instance)
mapping = {}
diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py
index 08a0566dd..e5319c514 100644
--- a/nova/virt/libvirt/config.py
+++ b/nova/virt/libvirt/config.py
@@ -460,7 +460,9 @@ class LibvirtConfigGuestDisk(LibvirtConfigGuestDevice):
self.driver_cache = None
self.source_path = None
self.source_protocol = None
- self.source_host = None
+ self.source_name = None
+ self.source_hosts = []
+ self.source_ports = []
self.target_dev = None
self.target_path = None
self.target_bus = None
@@ -499,8 +501,16 @@ class LibvirtConfigGuestDisk(LibvirtConfigGuestDevice):
elif self.source_type == "mount":
dev.append(etree.Element("source", dir=self.source_path))
elif self.source_type == "network":
- dev.append(etree.Element("source", protocol=self.source_protocol,
- name=self.source_host))
+ source = etree.Element("source", protocol=self.source_protocol)
+ if self.source_name is not None:
+ source.set('name', self.source_name)
+ hosts_info = zip(self.source_hosts, self.source_ports)
+ for name, port in hosts_info:
+ host = etree.Element('host', name=name)
+ if port is not None:
+ host.set('port', port)
+ source.append(host)
+ dev.append(source)
if self.auth_secret_type is not None:
auth = etree.Element("auth")
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 12bc03e66..91d5b1a50 100755
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -289,6 +289,11 @@ MIN_LIBVIRT_LIVESNAPSHOT_VERSION = (1, 0, 0)
MIN_QEMU_LIVESNAPSHOT_VERSION = (1, 3, 0)
+def libvirt_error_handler(ctxt, err):
+ # Just ignore instead of default outputting to stderr.
+ pass
+
+
class LibvirtDriver(driver.ComputeDriver):
capabilities = {
@@ -543,6 +548,7 @@ class LibvirtDriver(driver.ComputeDriver):
dispatch_thread = eventlet.spawn(self._dispatch_thread)
def init_host(self, host):
+ libvirt.registerErrorHandler(libvirt_error_handler, None)
libvirt.virEventRegisterDefaultImpl()
if not self.has_min_version(MIN_LIBVIRT_VERSION):
@@ -1792,7 +1798,7 @@ class LibvirtDriver(driver.ComputeDriver):
user_id=instance['user_id'],
project_id=instance['project_id'])
- inst_type = flavors.extract_instance_type(instance)
+ inst_type = flavors.extract_flavor(instance)
# NOTE(ndipanov): Even if disk_mapping was passed in, which
# currently happens only on rescue - we still don't want to
@@ -2386,7 +2392,7 @@ class LibvirtDriver(driver.ComputeDriver):
'id': virt_dom.ID()}
def _create_domain(self, xml=None, domain=None,
- instance=None, launch_flags=0):
+ instance=None, launch_flags=0, power_on=True):
"""Create a domain.
Either domain or xml must be passed in. If both are passed, then
@@ -2409,7 +2415,8 @@ class LibvirtDriver(driver.ComputeDriver):
if xml:
domain = self._conn.defineXML(xml)
- domain.createWithFlags(launch_flags)
+ if power_on:
+ domain.createWithFlags(launch_flags)
self._enable_hairpin(domain.XMLDesc(0))
# NOTE(uni): Now the container is running with its own private mount
@@ -2426,7 +2433,7 @@ class LibvirtDriver(driver.ComputeDriver):
return domain
def _create_domain_and_network(self, xml, instance, network_info,
- block_device_info=None):
+ block_device_info=None, power_on=True):
"""Do required network setup and create domain."""
block_device_mapping = driver.block_device_info_get_mapping(
@@ -2448,7 +2455,7 @@ class LibvirtDriver(driver.ComputeDriver):
self.plug_vifs(instance, network_info)
self.firewall_driver.setup_basic_filtering(instance, network_info)
self.firewall_driver.prepare_instance_filter(instance, network_info)
- domain = self._create_domain(xml, instance=instance)
+ domain = self._create_domain(xml, instance=instance, power_on=power_on)
self.firewall_driver.apply_instance_filter(instance, network_info)
return domain
@@ -2974,15 +2981,14 @@ class LibvirtDriver(driver.ComputeDriver):
filename = dest_check_data["filename"]
self._cleanup_shared_storage_test_file(filename)
- def check_can_live_migrate_source(self, ctxt, instance_ref,
- dest_check_data):
+ def check_can_live_migrate_source(self, ctxt, instance, dest_check_data):
"""Check if it is possible to execute live migration.
This checks if the live migration can succeed, based on the
results from check_can_live_migrate_destination.
:param context: security context
- :param instance_ref: nova.db.sqlalchemy.models.Instance
+ :param instance: nova.db.sqlalchemy.models.Instance
:param dest_check_data: result of check_can_live_migrate_destination
:returns: a dict containing migration info
"""
@@ -3000,7 +3006,7 @@ class LibvirtDriver(driver.ComputeDriver):
reason = _("Block migration can not be used "
"with shared storage.")
raise exception.InvalidLocalStorage(reason=reason, path=source)
- self._assert_dest_node_has_enough_disk(ctxt, instance_ref,
+ self._assert_dest_node_has_enough_disk(ctxt, instance,
dest_check_data['disk_available_mb'],
dest_check_data['disk_over_commit'])
@@ -3009,6 +3015,14 @@ class LibvirtDriver(driver.ComputeDriver):
"without shared storage.")
raise exception.InvalidSharedStorage(reason=reason, path=source)
dest_check_data.update({"is_shared_storage": shared})
+
+ # NOTE(mikal): include the instance directory name here because it
+ # doesn't yet exist on the destination but we want to force that
+ # same name to be used
+ instance_path = libvirt_utils.get_instance_path(instance,
+ relative=True)
+ dest_check_data['instance_relative_path'] = instance_path
+
return dest_check_data
def _assert_dest_node_has_enough_disk(self, context, instance_ref,
@@ -3259,19 +3273,28 @@ class LibvirtDriver(driver.ComputeDriver):
is_shared_storage = True
is_volume_backed = False
is_block_migration = True
+ instance_relative_path = None
if migrate_data:
is_shared_storage = migrate_data.get('is_shared_storage', True)
is_volume_backed = migrate_data.get('is_volume_backed', False)
is_block_migration = migrate_data.get('block_migration', True)
+ instance_relative_path = migrate_data.get('instance_relative_path')
+
+ if not is_shared_storage:
+ # NOTE(mikal): this doesn't use libvirt_utils.get_instance_path
+ # because we are ensuring that the same instance directory name
+ # is used as was at the source
+ if instance_relative_path:
+ instance_dir = os.path.join(CONF.instances_path,
+ instance_relative_path)
+ else:
+ instance_dir = libvirt_utils.get_instance_path(instance)
- if is_volume_backed and not (is_block_migration or is_shared_storage):
-
- # Create the instance directory on destination compute node.
- instance_dir = libvirt_utils.get_instance_path(instance)
if os.path.exists(instance_dir):
raise exception.DestinationDiskExists(path=instance_dir)
os.mkdir(instance_dir)
+ if is_volume_backed and not (is_block_migration or is_shared_storage):
# Touch the console.log file, required by libvirt.
console_file = self._get_console_log_path(instance)
libvirt_utils.file_open(console_file, 'a').close()
@@ -3558,6 +3581,19 @@ class LibvirtDriver(driver.ComputeDriver):
disk_info_text = self.get_instance_disk_info(instance['name'])
disk_info = jsonutils.loads(disk_info_text)
+ # copy disks to destination
+ # rename instance dir to +_resize at first for using
+ # shared storage for instance dir (eg. NFS).
+ inst_base = libvirt_utils.get_instance_path(instance)
+ inst_base_resize = inst_base + "_resize"
+ shared_storage = self._is_storage_shared_with(dest, inst_base)
+
+ # try to create the directory on the remote compute node
+ # if this fails we pass the exception up the stack so we can catch
+ # failures here earlier
+ if not shared_storage:
+ utils.execute('ssh', dest, 'mkdir', '-p', inst_base)
+
self.power_off(instance)
block_device_mapping = driver.block_device_info_get_mapping(
@@ -3569,20 +3605,14 @@ class LibvirtDriver(driver.ComputeDriver):
connection_info,
disk_dev)
- # copy disks to destination
- # rename instance dir to +_resize at first for using
- # shared storage for instance dir (eg. NFS).
- inst_base = libvirt_utils.get_instance_path(instance)
- inst_base_resize = inst_base + "_resize"
-
- shared_storage = self._is_storage_shared_with(dest, inst_base)
try:
utils.execute('mv', inst_base, inst_base_resize)
+ # if we are migrating the instance with shared storage then
+ # create the directory. If it is a remote node the directory
+ # has already been created
if shared_storage:
dest = None
utils.execute('mkdir', '-p', inst_base)
- else:
- utils.execute('ssh', dest, 'mkdir', '-p', inst_base)
for info in disk_info:
# assume inst_base == dirname(info['path'])
img_path = info['path']
@@ -3619,7 +3649,7 @@ class LibvirtDriver(driver.ComputeDriver):
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance,
- block_device_info=None):
+ block_device_info=None, power_on=True):
LOG.debug(_("Starting finish_migration"), instance=instance)
# resize disks. only "disk" and "disk.local" are necessary.
@@ -3670,10 +3700,12 @@ class LibvirtDriver(driver.ComputeDriver):
block_device_info=block_device_info,
write_to_disk=True)
self._create_domain_and_network(xml, instance, network_info,
- block_device_info)
- timer = loopingcall.FixedIntervalLoopingCall(self._wait_for_running,
- instance)
- timer.start(interval=0.5).wait()
+ block_device_info, power_on)
+ if power_on:
+ timer = loopingcall.FixedIntervalLoopingCall(
+ self._wait_for_running,
+ instance)
+ timer.start(interval=0.5).wait()
def _cleanup_failed_migration(self, inst_base):
"""Make sure that a failed migrate doesn't prevent us from rolling
@@ -3681,7 +3713,7 @@ class LibvirtDriver(driver.ComputeDriver):
shutil.rmtree(inst_base)
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
+ block_device_info=None, power_on=True):
LOG.debug(_("Starting finish_revert_migration"),
instance=instance)
@@ -3703,11 +3735,13 @@ class LibvirtDriver(driver.ComputeDriver):
xml = self.to_xml(instance, network_info, disk_info,
block_device_info=block_device_info)
self._create_domain_and_network(xml, instance, network_info,
- block_device_info)
+ block_device_info, power_on)
- timer = loopingcall.FixedIntervalLoopingCall(self._wait_for_running,
- instance)
- timer.start(interval=0.5).wait()
+ if power_on:
+ timer = loopingcall.FixedIntervalLoopingCall(
+ self._wait_for_running,
+ instance)
+ timer.start(interval=0.5).wait()
def confirm_migration(self, migration, instance, network_info):
"""Confirms a resize, destroying the source VM."""
diff --git a/nova/virt/libvirt/imagebackend.py b/nova/virt/libvirt/imagebackend.py
index 84686a82a..844d9dfde 100755
--- a/nova/virt/libvirt/imagebackend.py
+++ b/nova/virt/libvirt/imagebackend.py
@@ -175,13 +175,13 @@ class Image(object):
return can_fallocate
def snapshot_create(self):
- raise NotImplementedError
+ raise NotImplementedError()
def snapshot_extract(self, target, out_format):
- raise NotImplementedError
+ raise NotImplementedError()
def snapshot_delete(self):
- raise NotImplementedError
+ raise NotImplementedError()
class Raw(Image):
@@ -250,15 +250,40 @@ class Qcow2(Image):
if size:
disk.extend(target, size)
+ # Download the unmodified base image unless we already have a copy.
if not os.path.exists(base):
prepare_template(target=base, *args, **kwargs)
+
+ legacy_backing_size = None
+ legacy_base = base
+
+ # Determine whether an existing qcow2 disk uses a legacy backing by
+ # actually looking at the image itself and parsing the output of the
+ # backing file it expects to be using.
+ if os.path.exists(self.path):
+ backing_path = libvirt_utils.get_disk_backing_file(self.path)
+ backing_file = os.path.basename(backing_path)
+ backing_parts = backing_file.rpartition('_')
+ if backing_file != backing_parts[-1] and \
+ backing_parts[-1].isdigit():
+ legacy_backing_size = int(backing_parts[-1])
+ legacy_base += '_%d' % legacy_backing_size
+ legacy_backing_size *= 1024 * 1024 * 1024
+
+ # Create the legacy backing file if necessary.
+ if legacy_backing_size:
+ if not os.path.exists(legacy_base):
+ with utils.remove_path_on_error(legacy_base):
+ libvirt_utils.copy_image(base, legacy_base)
+ disk.extend(legacy_base, legacy_backing_size)
+
# NOTE(cfb): Having a flavor that sets the root size to 0 and having
# nova effectively ignore that size and use the size of the
# image is considered a feature at this time, not a bug.
if size and size < disk.get_disk_size(base):
LOG.error('%s virtual size larger than flavor root disk size %s' %
(base, size))
- raise exception.ImageTooLarge()
+ raise exception.InstanceTypeDiskTooSmall()
if not os.path.exists(self.path):
with utils.remove_path_on_error(self.path):
copy_qcow2_image(base, self.path, size)
diff --git a/nova/virt/libvirt/utils.py b/nova/virt/libvirt/utils.py
index 07ab44769..c444dcfb2 100755
--- a/nova/virt/libvirt/utils.py
+++ b/nova/virt/libvirt/utils.py
@@ -224,7 +224,11 @@ def create_lvm_image(vg, lv, size, sparse=False):
raise RuntimeError(_('Insufficient Space on Volume Group %(vg)s.'
' Only %(free_space)db available,'
' but %(size)db required'
- ' by volume %(lv)s.') % locals())
+ ' by volume %(lv)s.') %
+ {'vg': vg,
+ 'free_space': free_space,
+ 'size': size,
+ 'lv': lv})
if sparse:
preallocated_space = 64 * 1024 * 1024
@@ -234,7 +238,11 @@ def create_lvm_image(vg, lv, size, sparse=False):
' to hold sparse volume %(lv)s.'
' Virtual volume size is %(size)db,'
' but free space on volume group is'
- ' only %(free_space)db.') % locals())
+ ' only %(free_space)db.'),
+ {'vg': vg,
+ 'free_space': free_space,
+ 'size': size,
+ 'lv': lv})
cmd = ('lvcreate', '-L', '%db' % preallocated_space,
'--virtualsize', '%db' % size, '-n', lv, vg)
@@ -593,7 +601,7 @@ def fetch_image(context, target, image_id, user_id, project_id):
images.fetch_to_raw(context, image_id, target, user_id, project_id)
-def get_instance_path(instance, forceold=False):
+def get_instance_path(instance, forceold=False, relative=False):
"""Determine the correct path for instance storage.
This method determines the directory name for instance storage, while
@@ -602,10 +610,16 @@ def get_instance_path(instance, forceold=False):
:param instance: the instance we want a path for
:param forceold: force the use of the pre-grizzly format
+ :param relative: if True, just the relative path is returned
:returns: a path to store information about that instance
"""
pre_grizzly_name = os.path.join(CONF.instances_path, instance['name'])
if forceold or os.path.exists(pre_grizzly_name):
+ if relative:
+ return instance['name']
return pre_grizzly_name
+
+ if relative:
+ return instance['uuid']
return os.path.join(CONF.instances_path, instance['uuid'])
diff --git a/nova/virt/libvirt/volume.py b/nova/virt/libvirt/volume.py
index ef8818743..712e108de 100644
--- a/nova/virt/libvirt/volume.py
+++ b/nova/virt/libvirt/volume.py
@@ -131,7 +131,7 @@ class LibvirtFakeVolumeDriver(LibvirtBaseVolumeDriver):
disk_info)
conf.source_type = "network"
conf.source_protocol = "fake"
- conf.source_host = "fake"
+ conf.source_name = "fake"
return conf
@@ -145,10 +145,12 @@ class LibvirtNetVolumeDriver(LibvirtBaseVolumeDriver):
conf = super(LibvirtNetVolumeDriver,
self).connect_volume(connection_info,
disk_info)
+ netdisk_properties = connection_info['data']
conf.source_type = "network"
conf.source_protocol = connection_info['driver_volume_type']
- conf.source_host = connection_info['data']['name']
- netdisk_properties = connection_info['data']
+ conf.source_name = netdisk_properties.get('name')
+ conf.source_hosts = netdisk_properties.get('hosts', [])
+ conf.source_ports = netdisk_properties.get('ports', [])
auth_enabled = netdisk_properties.get('auth_enabled')
if (conf.source_protocol == 'rbd' and
CONF.rbd_secret_uuid):
@@ -239,8 +241,9 @@ class LibvirtISCSIVolumeDriver(LibvirtBaseVolumeDriver):
% (host_device))
LOG.warn(_("ISCSI volume not yet found at: %(disk_dev)s. "
- "Will rescan & retry. Try number: %(tries)s") %
- locals())
+ "Will rescan & retry. Try number: %(tries)s"),
+ {'disk_dev': disk_dev,
+ 'tries': tries})
# The rescan isn't documented as being necessary(?), but it helps
self._run_iscsiadm(iscsi_properties, ("--rescan",))
@@ -251,8 +254,9 @@ class LibvirtISCSIVolumeDriver(LibvirtBaseVolumeDriver):
if tries != 0:
LOG.debug(_("Found iSCSI node %(disk_dev)s "
- "(after %(tries)s rescans)") %
- locals())
+ "(after %(tries)s rescans)"),
+ {'disk_dev': disk_dev,
+ 'tries': tries})
if libvirt_iscsi_use_multipath:
#we use the multipath device instead of the single path device
@@ -474,30 +478,33 @@ class LibvirtNFSVolumeDriver(LibvirtBaseVolumeDriver):
conf = super(LibvirtNFSVolumeDriver,
self).connect_volume(connection_info,
disk_info)
- path = self._ensure_mounted(connection_info['data']['export'])
+ options = connection_info['data'].get('options')
+ path = self._ensure_mounted(connection_info['data']['export'], options)
path = os.path.join(path, connection_info['data']['name'])
conf.source_type = 'file'
conf.source_path = path
return conf
- def _ensure_mounted(self, nfs_export):
+ def _ensure_mounted(self, nfs_export, options=None):
"""
@type nfs_export: string
+ @type options: string
"""
mount_path = os.path.join(CONF.nfs_mount_point_base,
self.get_hash_str(nfs_export))
- self._mount_nfs(mount_path, nfs_export, ensure=True)
+ self._mount_nfs(mount_path, nfs_export, options, ensure=True)
return mount_path
- def _mount_nfs(self, mount_path, nfs_share, ensure=False):
+ def _mount_nfs(self, mount_path, nfs_share, options=None, ensure=False):
"""Mount nfs export to mount path."""
- if not self._path_exists(mount_path):
- utils.execute('mkdir', '-p', mount_path)
+ utils.execute('mkdir', '-p', mount_path)
# Construct the NFS mount command.
nfs_cmd = ['mount', '-t', 'nfs']
if CONF.nfs_mount_options is not None:
nfs_cmd.extend(['-o', CONF.nfs_mount_options])
+ if options is not None:
+ nfs_cmd.extend(options.split(' '))
nfs_cmd.extend([nfs_share, mount_path])
try:
@@ -513,14 +520,6 @@ class LibvirtNFSVolumeDriver(LibvirtBaseVolumeDriver):
"""returns string that represents hash of base_str (in hex format)."""
return hashlib.md5(base_str).hexdigest()
- @staticmethod
- def _path_exists(path):
- """Check path."""
- try:
- return utils.execute('stat', path, run_as_root=True)
- except processutils.ProcessExecutionError:
- return False
-
class LibvirtAOEVolumeDriver(LibvirtBaseVolumeDriver):
"""Driver to attach AoE volumes to libvirt."""
@@ -563,8 +562,9 @@ class LibvirtAOEVolumeDriver(LibvirtBaseVolumeDriver):
raise exception.NovaException(_("AoE device not found at %s") %
(aoedevpath))
LOG.warn(_("AoE volume not yet found at: %(aoedevpath)s. "
- "Try number: %(tries)s") %
- locals())
+ "Try number: %(tries)s"),
+ {'aoedevpath': aoedevpath,
+ 'tries': tries})
self._aoe_discover()
self.tries = self.tries + 1
@@ -577,8 +577,9 @@ class LibvirtAOEVolumeDriver(LibvirtBaseVolumeDriver):
tries = self.tries
if tries != 0:
LOG.debug(_("Found AoE device %(aoedevpath)s "
- "(after %(tries)s rediscover)") %
- locals())
+ "(after %(tries)s rediscover)"),
+ {'aoedevpath': aoedevpath,
+ 'tries': tries})
conf = super(LibvirtAOEVolumeDriver,
self).connect_volume(connection_info, mount_device)
@@ -599,30 +600,36 @@ class LibvirtGlusterfsVolumeDriver(LibvirtBaseVolumeDriver):
"""Connect the volume. Returns xml for libvirt."""
conf = super(LibvirtGlusterfsVolumeDriver,
self).connect_volume(connection_info, mount_device)
- path = self._ensure_mounted(connection_info['data']['export'])
+ options = connection_info['data'].get('options')
+ path = self._ensure_mounted(connection_info['data']['export'], options)
path = os.path.join(path, connection_info['data']['name'])
conf.source_type = 'file'
conf.source_path = path
return conf
- def _ensure_mounted(self, glusterfs_export):
+ def _ensure_mounted(self, glusterfs_export, options=None):
"""
@type glusterfs_export: string
+ @type options: string
"""
mount_path = os.path.join(CONF.glusterfs_mount_point_base,
self.get_hash_str(glusterfs_export))
- self._mount_glusterfs(mount_path, glusterfs_export, ensure=True)
+ self._mount_glusterfs(mount_path, glusterfs_export,
+ options, ensure=True)
return mount_path
- def _mount_glusterfs(self, mount_path, glusterfs_share, ensure=False):
+ def _mount_glusterfs(self, mount_path, glusterfs_share,
+ options=None, ensure=False):
"""Mount glusterfs export to mount path."""
- if not self._path_exists(mount_path):
- utils.execute('mkdir', '-p', mount_path)
+ utils.execute('mkdir', '-p', mount_path)
+
+ gluster_cmd = ['mount', '-t', 'glusterfs']
+ if options is not None:
+ gluster_cmd.extend(options.split(' '))
+ gluster_cmd.extend([glusterfs_share, mount_path])
try:
- utils.execute('mount', '-t', 'glusterfs', glusterfs_share,
- mount_path,
- run_as_root=True)
+ utils.execute(*gluster_cmd, run_as_root=True)
except processutils.ProcessExecutionError as exc:
if ensure and 'already mounted' in exc.message:
LOG.warn(_("%s is already mounted"), glusterfs_share)
@@ -634,14 +641,6 @@ class LibvirtGlusterfsVolumeDriver(LibvirtBaseVolumeDriver):
"""returns string that represents hash of base_str (in hex format)."""
return hashlib.md5(base_str).hexdigest()
- @staticmethod
- def _path_exists(path):
- """Check path."""
- try:
- return utils.execute('stat', path, run_as_root=True)
- except processutils.ProcessExecutionError:
- return False
-
class LibvirtFibreChannelVolumeDriver(LibvirtBaseVolumeDriver):
"""Driver to attach Fibre Channel Network volumes to libvirt."""
@@ -713,8 +712,8 @@ class LibvirtFibreChannelVolumeDriver(LibvirtBaseVolumeDriver):
def _wait_for_device_discovery(host_devices, mount_device):
tries = self.tries
for device in host_devices:
- LOG.debug(_("Looking for Fibre Channel dev %(device)s")
- % locals())
+ LOG.debug(_("Looking for Fibre Channel dev %(device)s"),
+ {'device': device})
if os.path.exists(device):
self.host_device = device
# get the /dev/sdX device. This is used
@@ -727,8 +726,9 @@ class LibvirtFibreChannelVolumeDriver(LibvirtBaseVolumeDriver):
raise exception.NovaException(msg)
LOG.warn(_("Fibre volume not yet found at: %(mount_device)s. "
- "Will rescan & retry. Try number: %(tries)s") %
- locals())
+ "Will rescan & retry. Try number: %(tries)s"),
+ {'mount_device': mount_device,
+ 'tries': tries})
linuxscsi.rescan_hosts(hbas)
self.tries = self.tries + 1
@@ -743,7 +743,9 @@ class LibvirtFibreChannelVolumeDriver(LibvirtBaseVolumeDriver):
tries = self.tries
if self.host_device is not None and self.device_name is not None:
LOG.debug(_("Found Fibre Channel volume %(mount_device)s "
- "(after %(tries)s rescans)") % locals())
+ "(after %(tries)s rescans)"),
+ {'mount_device': mount_device,
+ 'tries': tries})
# see if the new drive is part of a multipath
# device. If so, we'll use the multipath device.
@@ -753,6 +755,7 @@ class LibvirtFibreChannelVolumeDriver(LibvirtBaseVolumeDriver):
% {'device': mdev_info['device']})
device_path = mdev_info['device']
connection_info['data']['devices'] = mdev_info['devices']
+ connection_info['data']['multipath_id'] = mdev_info['id']
else:
# we didn't find a multipath device.
# so we assume the kernel only sees 1 device
@@ -774,6 +777,15 @@ class LibvirtFibreChannelVolumeDriver(LibvirtBaseVolumeDriver):
self).disconnect_volume(connection_info, mount_device)
devices = connection_info['data']['devices']
+ # If this is a multipath device, we need to search again
+ # and make sure we remove all the devices. Some of them
+ # might not have shown up at attach time.
+ if 'multipath_id' in connection_info['data']:
+ multipath_id = connection_info['data']['multipath_id']
+ mdev_info = linuxscsi.find_multipath_device(multipath_id)
+ devices = mdev_info['devices']
+ LOG.debug("devices to remove = %s" % devices)
+
# There may have been more than 1 device mounted
# by the kernel for this volume. We have to remove
# all of them
diff --git a/nova/virt/powervm/blockdev.py b/nova/virt/powervm/blockdev.py
index 5b15c14bb..9f567b746 100644
--- a/nova/virt/powervm/blockdev.py
+++ b/nova/virt/powervm/blockdev.py
@@ -177,10 +177,11 @@ class PowerVMLocalVolumeAdapter(PowerVMDiskAdapter):
# calculate root device size in bytes
# we respect the minimum root device size in constants
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
size_gb = max(instance_type['root_gb'], constants.POWERVM_MIN_ROOT_GB)
size = size_gb * 1024 * 1024 * 1024
+ disk_name = None
try:
LOG.debug(_("Creating logical volume of size %s bytes") % size)
disk_name = self._create_logical_volume(size)
@@ -192,12 +193,13 @@ class PowerVMLocalVolumeAdapter(PowerVMDiskAdapter):
"Will attempt cleanup."))
# attempt cleanup of logical volume before re-raising exception
with excutils.save_and_reraise_exception():
- try:
- self.delete_volume(disk_name)
- except Exception:
- msg = _('Error while attempting cleanup of failed '
- 'deploy to logical volume.')
- LOG.exception(msg)
+ if disk_name is not None:
+ try:
+ self.delete_volume(disk_name)
+ except Exception:
+ msg = _('Error while attempting cleanup of failed '
+ 'deploy to logical volume.')
+ LOG.exception(msg)
return {'device_name': disk_name}
@@ -382,6 +384,22 @@ class PowerVMLocalVolumeAdapter(PowerVMDiskAdapter):
output = self.run_vios_command_as_root(cmd)
return output[0]
+ def _checksum_local_file(self, source_path):
+ """Calculate local file checksum.
+
+ :param source_path: source file path
+ :returns: string -- the md5sum of local file
+ """
+ with open(source_path, 'r') as img_file:
+ hasher = hashlib.md5()
+ block_size = 0x10000
+ buf = img_file.read(block_size)
+ while len(buf) > 0:
+ hasher.update(buf)
+ buf = img_file.read(block_size)
+ source_cksum = hasher.hexdigest()
+ return source_cksum
+
def _copy_image_file(self, source_path, remote_path, decompress=False):
"""Copy file to VIOS, decompress it, and return its new size and name.
@@ -391,14 +409,7 @@ class PowerVMLocalVolumeAdapter(PowerVMDiskAdapter):
if False (default), just copies the file
"""
# Calculate source image checksum
- hasher = hashlib.md5()
- block_size = 0x10000
- img_file = file(source_path, 'r')
- buf = img_file.read(block_size)
- while len(buf) > 0:
- hasher.update(buf)
- buf = img_file.read(block_size)
- source_cksum = hasher.hexdigest()
+ source_cksum = self._checksum_local_file(source_path)
comp_path = os.path.join(remote_path, os.path.basename(source_path))
if comp_path.endswith(".gz"):
@@ -424,10 +435,18 @@ class PowerVMLocalVolumeAdapter(PowerVMDiskAdapter):
output = self._md5sum_remote_file(final_path)
if not output:
LOG.error(_("Unable to get checksum"))
- raise exception.PowerVMFileTransferFailed()
+ # Cleanup inconsistent remote file
+ cmd = "/usr/bin/rm -f %s" % final_path
+ self.run_vios_command_as_root(cmd)
+
+ raise exception.PowerVMFileTransferFailed(file_path=final_path)
if source_cksum != output.split(' ')[0]:
LOG.error(_("Image checksums do not match"))
- raise exception.PowerVMFileTransferFailed()
+ # Cleanup inconsistent remote file
+ cmd = "/usr/bin/rm -f %s" % final_path
+ self.run_vios_command_as_root(cmd)
+
+ raise exception.PowerVMFileTransferFailed(file_path=final_path)
if decompress:
# Unzip the image
@@ -507,19 +526,13 @@ class PowerVMLocalVolumeAdapter(PowerVMDiskAdapter):
local_file_path)
# Calculate copied image checksum
- with open(local_file_path, 'r') as image_file:
- hasher = hashlib.md5()
- block_size = 0x10000
- buf = image_file.read(block_size)
- while len(buf) > 0:
- hasher.update(buf)
- buf = image_file.read(block_size)
- dest_chksum = hasher.hexdigest()
+ dest_chksum = self._checksum_local_file(local_file_path)
# do comparison
if source_chksum and dest_chksum != source_chksum:
LOG.error(_("Image checksums do not match"))
- raise exception.PowerVMFileTransferFailed()
+ raise exception.PowerVMFileTransferFailed(
+ file_path=local_file_path)
# Cleanup transferred remote file
cmd = "/usr/bin/rm -f %s" % copy_from_path
diff --git a/nova/virt/powervm/driver.py b/nova/virt/powervm/driver.py
index 199b10704..58c0d5f09 100755
--- a/nova/virt/powervm/driver.py
+++ b/nova/virt/powervm/driver.py
@@ -279,7 +279,7 @@ class PowerVMDriver(driver.ComputeDriver):
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance,
- block_device_info=None):
+ block_device_info=None, power_on=True):
"""Completes a resize, turning on the migrated instance
:param network_info:
@@ -290,14 +290,15 @@ class PowerVMDriver(driver.ComputeDriver):
"""
lpar_obj = self._powervm._create_lpar_instance(instance, network_info)
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
new_lv_size = instance_type['root_gb']
old_lv_size = disk_info['old_lv_size']
if 'root_disk_file' in disk_info:
disk_size = max(int(new_lv_size), int(old_lv_size))
disk_size_bytes = disk_size * 1024 * 1024 * 1024
self._powervm.deploy_from_migrated_file(
- lpar_obj, disk_info['root_disk_file'], disk_size_bytes)
+ lpar_obj, disk_info['root_disk_file'], disk_size_bytes,
+ power_on)
else:
# this shouldn't get hit unless someone forgot to handle
# a certain migration type
@@ -312,8 +313,8 @@ class PowerVMDriver(driver.ComputeDriver):
self._powervm.destroy(new_name)
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
- """Finish reverting a resize, powering back on the instance."""
+ block_device_info=None, power_on=True):
+ """Finish reverting a resize."""
new_name = self._get_resize_name(instance['name'])
@@ -332,4 +333,6 @@ class PowerVMDriver(driver.ComputeDriver):
self._powervm.destroy(instance['name'])
# undo instance rename and start
self._powervm._operator.rename_lpar(new_name, instance['name'])
- self._powervm.power_on(instance['name'])
+
+ if power_on:
+ self._powervm.power_on(instance['name'])
diff --git a/nova/virt/powervm/operator.py b/nova/virt/powervm/operator.py
index f78aeb475..18cba0ba2 100644
--- a/nova/virt/powervm/operator.py
+++ b/nova/virt/powervm/operator.py
@@ -414,7 +414,8 @@ class PowerVMOperator(object):
disk_info['root_disk_file'] = dest_file_path
return disk_info
- def deploy_from_migrated_file(self, lpar, file_path, size):
+ def deploy_from_migrated_file(self, lpar, file_path, size,
+ power_on=True):
"""Deploy the logical volume and attach to new lpar.
:param lpar: lar instance
@@ -426,13 +427,14 @@ class PowerVMOperator(object):
try:
# deploy lpar from file
self._deploy_from_vios_file(lpar, file_path, size,
- decompress=need_decompress)
+ decompress=need_decompress,
+ power_on=power_on)
finally:
# cleanup migrated file
self._operator._remove_file(file_path)
def _deploy_from_vios_file(self, lpar, file_path, size,
- decompress=True):
+ decompress=True, power_on=True):
self._operator.create_lpar(lpar)
lpar = self._operator.get_lpar(lpar['name'])
instance_id = lpar['lpar_id']
@@ -447,7 +449,8 @@ class PowerVMOperator(object):
self._disk_adapter._copy_file_to_device(file_path, diskName,
decompress)
- self._operator.start_lpar(lpar['name'])
+ if power_on:
+ self._operator.start_lpar(lpar['name'])
class BaseOperator(object):
diff --git a/nova/virt/vmwareapi/driver.py b/nova/virt/vmwareapi/driver.py
index 4fa1614e0..916913187 100755
--- a/nova/virt/vmwareapi/driver.py
+++ b/nova/virt/vmwareapi/driver.py
@@ -383,16 +383,17 @@ class VMwareVCDriver(VMwareESXDriver):
self._vmops.confirm_migration(migration, instance, network_info)
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
+ block_device_info=None, power_on=True):
"""Finish reverting a resize, powering back on the instance."""
- self._vmops.finish_revert_migration(instance)
+ self._vmops.finish_revert_migration(instance, power_on)
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance=False,
- block_device_info=None):
+ block_device_info=None, power_on=True):
"""Completes a resize, turning on the migrated instance."""
self._vmops.finish_migration(context, migration, instance, disk_info,
- network_info, image_meta, resize_instance)
+ network_info, image_meta, resize_instance,
+ power_on)
def live_migration(self, context, instance_ref, dest,
post_method, recover_method, block_migration=False,
diff --git a/nova/virt/vmwareapi/fake.py b/nova/virt/vmwareapi/fake.py
index 86b6e5fc2..65910f745 100644
--- a/nova/virt/vmwareapi/fake.py
+++ b/nova/virt/vmwareapi/fake.py
@@ -583,7 +583,8 @@ class FakeVim(object):
"powerstate": "poweredOff",
"vmPathName": config_spec.files.vmPathName,
"numCpu": config_spec.numCPUs,
- "mem": config_spec.memoryMB}
+ "mem": config_spec.memoryMB,
+ "extra_config": config_spec.extraConfig}
virtual_machine = VirtualMachine(**vm_dict)
_create_object("VirtualMachine", virtual_machine)
task_mdo = create_task(method, "success")
diff --git a/nova/virt/vmwareapi/network_util.py b/nova/virt/vmwareapi/network_util.py
index 6f7b71b7b..2778b16de 100644
--- a/nova/virt/vmwareapi/network_util.py
+++ b/nova/virt/vmwareapi/network_util.py
@@ -51,11 +51,8 @@ def get_network_with_the_name(session, network_name="vmnet0", cluster=None):
if not vm_networks_ret:
return None
vm_networks = vm_networks_ret.ManagedObjectReference
- networks = session._call_method(vim_util,
- "get_properties_for_a_collection_of_objects",
- "Network", vm_networks, ["summary.name"])
network_obj = {}
- LOG.warn(vm_networks)
+ LOG.debug(vm_networks)
for network in vm_networks:
# Get network properties
if network._type == 'DistributedVirtualPortgroup':
diff --git a/nova/virt/vmwareapi/read_write_util.py b/nova/virt/vmwareapi/read_write_util.py
index a87b3ed92..c82b96fd9 100644
--- a/nova/virt/vmwareapi/read_write_util.py
+++ b/nova/virt/vmwareapi/read_write_util.py
@@ -97,15 +97,15 @@ class VMwareHTTPFile(object):
def write(self, data):
"""Write data to the file."""
- raise NotImplementedError
+ raise NotImplementedError()
def read(self, chunk_size):
"""Read a chunk of data."""
- raise NotImplementedError
+ raise NotImplementedError()
def get_size(self):
"""Get size of the file to be read."""
- raise NotImplementedError
+ raise NotImplementedError()
class VMwareHTTPWriteFile(VMwareHTTPFile):
diff --git a/nova/virt/vmwareapi/vmops.py b/nova/virt/vmwareapi/vmops.py
index cda2ce8e3..3d6ef86af 100644
--- a/nova/virt/vmwareapi/vmops.py
+++ b/nova/virt/vmwareapi/vmops.py
@@ -182,7 +182,7 @@ class VMwareVMOps(object):
vif_infos.append({'network_name': network_name,
'mac_address': mac_address,
'network_ref': network_ref,
- 'iface_id': vif.get_meta('iface_id'),
+ 'iface_id': vif['id'],
})
return vif_infos
@@ -978,8 +978,8 @@ class VMwareVMOps(object):
if network_info:
self.unplug_vifs(instance, network_info)
- def finish_revert_migration(self, instance):
- """Finish reverting a resize, powering back on the instance."""
+ def finish_revert_migration(self, instance, power_on=True):
+ """Finish reverting a resize."""
# The original vm was suffixed with '-orig'; find it using
# the old suffix, remove the suffix, then power it back on.
name_label = self._get_orig_vm_name_label(instance)
@@ -995,13 +995,16 @@ class VMwareVMOps(object):
self._session._wait_for_task(instance['uuid'], rename_task)
LOG.debug(_("Renamed the VM from %s") % name_label,
instance=instance)
- self.power_on(instance)
+ if power_on:
+ self.power_on(instance)
def finish_migration(self, context, migration, instance, disk_info,
- network_info, image_meta, resize_instance=False):
+ network_info, image_meta, resize_instance=False,
+ power_on=True):
"""Completes a resize, turning on the migrated instance."""
# 4. Start VM
- self.power_on(instance)
+ if power_on:
+ self.power_on(instance)
self._update_instance_progress(context, instance,
step=4,
total_steps=RESIZE_TOTAL_STEPS)
diff --git a/nova/virt/xenapi/agent.py b/nova/virt/xenapi/agent.py
index ea454ea3d..ecba96beb 100644
--- a/nova/virt/xenapi/agent.py
+++ b/nova/virt/xenapi/agent.py
@@ -24,13 +24,18 @@ import uuid
from oslo.config import cfg
from nova.api.metadata import password
+from nova.compute import api as compute_api
from nova import context
from nova import crypto
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
+from nova.openstack.common import strutils
from nova import utils
+USE_AGENT_KEY = "xenapi_use_agent"
+USE_AGENT_SM_KEY = compute_api.SM_IMAGE_PROP_PREFIX + USE_AGENT_KEY
+
LOG = logging.getLogger(__name__)
xenapi_agent_opts = [
@@ -54,9 +59,17 @@ xenapi_agent_opts = [
' flat_injected=True'),
cfg.BoolOpt('xenapi_disable_agent',
default=False,
- help='Disable XenAPI agent. Reduces the amount of time '
- 'it takes nova to detect that a VM has started, when '
- 'that VM does not have the agent installed'),
+ help='Disables the use of the XenAPI agent in any image '
+ 'regardless of what image properties are present. '),
+ cfg.BoolOpt('xenapi_use_agent_default',
+ default=False,
+ help='Determines if the xenapi agent should be used when '
+ 'the image used does not contain a hint to declare if '
+ 'the agent is present or not. '
+ 'The hint is a glance property "' + USE_AGENT_KEY + '" '
+ 'that has the value "true" or "false". '
+ 'Note that waiting for the agent when it is not present '
+ 'will significantly increase server boot times.'),
]
CONF = cfg.CONF
@@ -310,6 +323,21 @@ def find_guest_agent(base_dir):
return False
+def should_use_agent(instance):
+ sys_meta = instance["system_metadata"]
+ if USE_AGENT_SM_KEY not in sys_meta:
+ return CONF.xenapi_use_agent_default
+ else:
+ use_agent_raw = sys_meta[USE_AGENT_SM_KEY]
+ try:
+ return strutils.bool_from_string(use_agent_raw, strict=True)
+ except ValueError:
+ LOG.warn(_("Invalid 'agent_present' value. "
+ "Falling back to the default."),
+ instance=instance)
+ return CONF.xenapi_use_agent_default
+
+
class SimpleDH(object):
"""
This class wraps all the functionality needed to implement
diff --git a/nova/virt/xenapi/driver.py b/nova/virt/xenapi/driver.py
index 5bc1a3049..cd892bceb 100755
--- a/nova/virt/xenapi/driver.py
+++ b/nova/virt/xenapi/driver.py
@@ -182,18 +182,19 @@ class XenAPIDriver(driver.ComputeDriver):
self._vmops.confirm_migration(migration, instance, network_info)
def finish_revert_migration(self, instance, network_info,
- block_device_info=None):
- """Finish reverting a resize, powering back on the instance."""
+ block_device_info=None, power_on=True):
+ """Finish reverting a resize."""
# NOTE(vish): Xen currently does not use network info.
- self._vmops.finish_revert_migration(instance, block_device_info)
+ self._vmops.finish_revert_migration(instance, block_device_info,
+ power_on)
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance=False,
- block_device_info=None):
+ block_device_info=None, power_on=True):
"""Completes a resize, turning on the migrated instance."""
self._vmops.finish_migration(context, migration, instance, disk_info,
network_info, image_meta, resize_instance,
- block_device_info)
+ block_device_info, power_on)
def snapshot(self, context, instance, image_id, update_task_state):
"""Create snapshot from a running VM instance."""
diff --git a/nova/virt/xenapi/fake.py b/nova/virt/xenapi/fake.py
index 69b0c2010..379671370 100644
--- a/nova/virt/xenapi/fake.py
+++ b/nova/virt/xenapi/fake.py
@@ -50,10 +50,12 @@
A fake XenAPI SDK.
"""
+import base64
import pickle
import random
import uuid
from xml.sax import saxutils
+import zlib
import pprint
@@ -608,6 +610,12 @@ class SessionBase(object):
def _plugin_xenhost_host_uptime(self, method, args):
return jsonutils.dumps({"uptime": "fake uptime"})
+ def _plugin_console_get_console_log(self, method, args):
+ dom_id = args["dom_id"]
+ if dom_id == 0:
+ raise Failure('Guest does not have a console')
+ return base64.b64encode(zlib.compress("dom_id: %s" % dom_id))
+
def host_call_plugin(self, _1, _2, plugin, method, args):
func = getattr(self, '_plugin_%s_%s' % (plugin, method), None)
if not func:
diff --git a/nova/virt/xenapi/imageupload/glance.py b/nova/virt/xenapi/imageupload/glance.py
index d306e06b0..b9b96d9a8 100644
--- a/nova/virt/xenapi/imageupload/glance.py
+++ b/nova/virt/xenapi/imageupload/glance.py
@@ -20,6 +20,7 @@ from oslo.config import cfg
from nova import exception
from nova.image import glance
import nova.openstack.common.log as logging
+from nova.virt.xenapi import agent
from nova.virt.xenapi import vm_utils
LOG = logging.getLogger(__name__)
@@ -44,6 +45,10 @@ class GlanceStore(object):
'os_type': instance['os_type'] or CONF.default_os_type,
}
+ if agent.USE_AGENT_SM_KEY in instance["system_metadata"]:
+ properties[agent.USE_AGENT_KEY] = \
+ instance["system_metadata"][agent.USE_AGENT_SM_KEY]
+
for attempt_num in xrange(1, max_attempts + 1):
(glance_host,
diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py
index 3f2c6835f..9c8c73ba9 100644
--- a/nova/virt/xenapi/vm_utils.py
+++ b/nova/virt/xenapi/vm_utils.py
@@ -46,6 +46,7 @@ from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
from nova.openstack.common import strutils
+from nova.openstack.common import timeutils
from nova import utils
from nova.virt import configdrive
from nova.virt.disk import api as disk
@@ -145,6 +146,7 @@ MBR_SIZE_SECTORS = 63
MBR_SIZE_BYTES = MBR_SIZE_SECTORS * SECTOR_SIZE
KERNEL_DIR = '/boot/guest'
MAX_VDI_CHAIN_SIZE = 16
+PROGRESS_INTERVAL_SECONDS = 300
class ImageType(object):
@@ -211,7 +213,7 @@ def create_vm(session, instance, name_label, kernel, ramdisk,
3. Using hardware virtualization
"""
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
mem = str(long(instance_type['memory_mb']) * 1024 * 1024)
vcpus = str(instance_type['vcpus'])
@@ -324,7 +326,7 @@ def is_vm_shutdown(session, vm_ref):
def ensure_free_mem(session, instance):
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
mem = long(instance_type['memory_mb']) * 1024 * 1024
host = session.get_xenapi_host()
host_free_mem = long(session.call_xenapi("host.compute_free_memory",
@@ -1192,22 +1194,21 @@ def _get_vdi_chain_size(session, vdi_uuid):
def _check_vdi_size(context, session, instance, vdi_uuid):
- size_bytes = _get_vdi_chain_size(session, vdi_uuid)
+ instance_type = flavors.extract_flavor(instance)
+ allowed_size = instance_type['root_gb'] * (1024 ** 3)
- # FIXME(jk0): this was copied directly from compute.manager.py, let's
- # refactor this to a common area
- instance_type = flavors.extract_instance_type(instance)
- allowed_size_gb = instance_type['root_gb']
- allowed_size_bytes = allowed_size_gb * 1024 * 1024 * 1024
+ if not allowed_size:
+ # root_gb=0 indicates that we're disabling size checks
+ return
- LOG.debug(_("image_size_bytes=%(size_bytes)d, allowed_size_bytes="
- "%(allowed_size_bytes)d"), locals(), instance=instance)
+ size = _get_vdi_chain_size(session, vdi_uuid)
+ if size > allowed_size:
+ LOG.error(_("Image size %(size)d exceeded instance_type "
+ "allowed size %(allowed_size)d"),
+ {'size': size, 'allowed_size': allowed_size},
+ instance=instance)
- if size_bytes > allowed_size_bytes:
- LOG.info(_("Image size %(size_bytes)d exceeded instance_type "
- "allowed size %(allowed_size_bytes)d"),
- locals(), instance=instance)
- raise exception.ImageTooLarge()
+ raise exception.InstanceTypeDiskTooSmall()
def _fetch_disk_image(context, session, instance, name_label, image_id,
@@ -2139,9 +2140,20 @@ def _resize_part_and_fs(dev, start, old_sectors, new_sectors):
utils.execute('tune2fs', '-j', partition_path, run_as_root=True)
+def _log_progress_if_required(left, last_log_time, virtual_size):
+ if timeutils.is_older_than(last_log_time, PROGRESS_INTERVAL_SECONDS):
+ last_log_time = timeutils.utcnow()
+ complete_pct = float(virtual_size - left) / virtual_size * 100
+ LOG.debug(_("Sparse copy in progress, "
+ "%(complete_pct).2f%% complete. "
+ "%(left) bytes left to copy"),
+ {"complete_pct": complete_pct, "left": left})
+ return last_log_time
+
+
def _sparse_copy(src_path, dst_path, virtual_size, block_size=4096):
"""Copy data, skipping long runs of zeros to create a sparse file."""
- start_time = time.time()
+ start_time = last_log_time = timeutils.utcnow()
EMPTY_BLOCK = '\0' * block_size
bytes_read = 0
skipped_bytes = 0
@@ -2176,8 +2188,10 @@ def _sparse_copy(src_path, dst_path, virtual_size, block_size=4096):
data = src.read(min(block_size, left))
greenthread.sleep(0)
+ last_log_time = _log_progress_if_required(
+ left, last_log_time, virtual_size)
- duration = time.time() - start_time
+ duration = timeutils.delta_seconds(start_time, timeutils.utcnow())
compression_pct = float(skipped_bytes) / bytes_read * 100
LOG.debug(_("Finished sparse_copy in %(duration).2f secs, "
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 034556809..bf8aa3e52 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -19,9 +19,11 @@
Management class for VM-related functions (spawn, reboot, etc).
"""
+import base64
import functools
import itertools
import time
+import zlib
from eventlet import greenthread
import netaddr
@@ -176,12 +178,14 @@ class VMOps(object):
self.image_upload_handler = importutils.import_object(
CONF.xenapi_image_upload_handler)
- @property
- def agent_enabled(self):
- return not CONF.xenapi_disable_agent
+ def agent_enabled(self, instance):
+ if CONF.xenapi_disable_agent:
+ return False
+
+ return xapi_agent.should_use_agent(instance)
def _get_agent(self, instance, vm_ref):
- if self.agent_enabled:
+ if self.agent_enabled(instance):
return xapi_agent.XenAPIBasedAgent(self._session, self._virtapi,
instance, vm_ref)
raise exception.NovaException(_("Error: Agent is disabled"))
@@ -229,10 +233,13 @@ class VMOps(object):
mount_device,
hotplug=False)
- def finish_revert_migration(self, instance, block_device_info=None):
- self._restore_orig_vm_and_cleanup_orphan(instance, block_device_info)
+ def finish_revert_migration(self, instance, block_device_info=None,
+ power_on=True):
+ self._restore_orig_vm_and_cleanup_orphan(instance, block_device_info,
+ power_on)
- def _restore_orig_vm_and_cleanup_orphan(self, instance, block_device_info):
+ def _restore_orig_vm_and_cleanup_orphan(self, instance,
+ block_device_info, power_on=True):
# NOTE(sirp): the original vm was suffixed with '-orig'; find it using
# the old suffix, remove the suffix, then power it back on.
name_label = self._get_orig_vm_name_label(instance)
@@ -255,11 +262,12 @@ class VMOps(object):
# We crashed before the -orig backup was made
vm_ref = new_ref
- self._start(instance, vm_ref)
+ if power_on:
+ self._start(instance, vm_ref)
def finish_migration(self, context, migration, instance, disk_info,
network_info, image_meta, resize_instance,
- block_device_info=None):
+ block_device_info=None, power_on=True):
root_vdi = vm_utils.move_disks(self._session, instance, disk_info)
if resize_instance:
@@ -290,7 +298,8 @@ class VMOps(object):
self._attach_mapped_block_devices(instance, block_device_info)
# 5. Start VM
- self._start(instance, vm_ref=vm_ref)
+ if power_on:
+ self._start(instance, vm_ref=vm_ref)
self._update_instance_progress(context, instance,
step=5,
total_steps=RESIZE_TOTAL_STEPS)
@@ -501,11 +510,7 @@ class VMOps(object):
disk_image_type)
self._setup_vm_networking(instance, vm_ref, vdis, network_info,
rescue)
-
- # NOTE(mikal): file injection only happens if we are _not_ using a
- # configdrive.
- if not configdrive.required_by(instance):
- self.inject_instance_metadata(instance, vm_ref)
+ self.inject_instance_metadata(instance, vm_ref)
return vm_ref
@@ -570,7 +575,7 @@ class VMOps(object):
def _attach_disks(self, instance, vm_ref, name_label, vdis,
disk_image_type, admin_password=None, files=None):
ctx = nova_context.get_admin_context()
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
# Attach (required) root disk
if disk_image_type == vm_utils.ImageType.DISK_ISO:
@@ -649,7 +654,7 @@ class VMOps(object):
greenthread.sleep(0.5)
- if self.agent_enabled:
+ if self.agent_enabled(instance):
agent_build = self._virtapi.agent_build_get_by_triple(
ctx, 'xen', instance['os_type'], instance['architecture'])
if agent_build:
@@ -695,7 +700,7 @@ class VMOps(object):
agent.resetnetwork()
# Set VCPU weight
- instance_type = flavors.extract_instance_type(instance)
+ instance_type = flavors.extract_flavor(instance)
vcpu_weight = instance_type['vcpu_weight']
if vcpu_weight is not None:
LOG.debug(_("Setting VCPU weight"), instance=instance)
@@ -870,7 +875,7 @@ class VMOps(object):
new_vdi_ref, new_vdi_uuid = create_copy_vdi_and_resize(
undo_mgr, old_vdi_ref)
transfer_vhd_to_dest(new_vdi_ref, new_vdi_uuid)
- except Exception, error:
+ except Exception as error:
msg = _("_migrate_disk_resizing_down failed. "
"Restoring orig vm due_to: %{exception}.")
LOG.exception(msg, instance=instance)
@@ -1053,7 +1058,7 @@ class VMOps(object):
def set_admin_password(self, instance, new_pass):
"""Set the root/admin password on the VM instance."""
- if self.agent_enabled:
+ if self.agent_enabled(instance):
vm_ref = self._get_vm_opaque_ref(instance)
agent = self._get_agent(instance, vm_ref)
agent.set_admin_password(new_pass)
@@ -1062,7 +1067,7 @@ class VMOps(object):
def inject_file(self, instance, path, contents):
"""Write a file to the VM instance."""
- if self.agent_enabled:
+ if self.agent_enabled(instance):
vm_ref = self._get_vm_opaque_ref(instance)
agent = self._get_agent(instance, vm_ref)
agent.inject_file(path, contents)
@@ -1418,9 +1423,18 @@ class VMOps(object):
return bw
def get_console_output(self, instance):
- """Return snapshot of console."""
- # TODO(armando-migliaccio): implement this to fix pylint!
- return 'FAKE CONSOLE OUTPUT of instance'
+ """Return last few lines of instance console."""
+ dom_id = self._get_dom_id(instance, check_rescue=True)
+
+ try:
+ raw_console_data = self._session.call_plugin('console',
+ 'get_console_log', {'dom_id': dom_id})
+ except self._session.XenAPI.Failure as exc:
+ LOG.exception(exc)
+ msg = _("Guest does not have a console available")
+ raise exception.NovaException(msg)
+
+ return zlib.decompress(base64.b64decode(raw_console_data))
def get_vnc_console(self, instance):
"""Return connection info for a vnc console."""
@@ -1561,7 +1575,7 @@ class VMOps(object):
def reset_network(self, instance):
"""Calls resetnetwork method in agent."""
- if self.agent_enabled:
+ if self.agent_enabled(instance):
vm_ref = self._get_vm_opaque_ref(instance)
agent = self._get_agent(instance, vm_ref)
agent.resetnetwork()
@@ -1604,9 +1618,7 @@ class VMOps(object):
"""
args = {}
if instance or vm_ref:
- vm_ref = vm_ref or self._get_vm_opaque_ref(instance)
- vm_rec = self._session.call_xenapi("VM.get_record", vm_ref)
- args['dom_id'] = vm_rec['domid']
+ args['dom_id'] = self._get_dom_id(instance, vm_ref)
args.update(addl_args)
try:
return self._session.call_plugin(plugin, method, args)
@@ -1627,6 +1639,11 @@ class VMOps(object):
return {'returncode': 'error', 'message': err_msg}
return None
+ def _get_dom_id(self, instance=None, vm_ref=None, check_rescue=False):
+ vm_ref = vm_ref or self._get_vm_opaque_ref(instance, check_rescue)
+ vm_rec = self._session.call_xenapi("VM.get_record", vm_ref)
+ return vm_rec['domid']
+
def _add_to_param_xenstore(self, vm_ref, key, val):
"""
Takes a key/value pair and adds it to the xenstore parameter
diff --git a/openstack-common.conf b/openstack-common.conf
index 086796b12..05fca3167 100644
--- a/openstack-common.conf
+++ b/openstack-common.conf
@@ -2,6 +2,7 @@
# The list of modules to copy from oslo-incubator.git
module=cliutils
+module=config
module=context
module=db
module=db.sqlalchemy
@@ -18,6 +19,7 @@ module=lockutils
module=log
module=loopingcall
module=memorycache
+module=middleware.correlation_id
module=network_utils
module=notifier
module=patch_tox_venv
diff --git a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec
index b93c7b071..85c2d1c05 100644
--- a/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec
+++ b/plugins/xenserver/xenapi/contrib/rpmbuild/SPECS/openstack-xen-plugins.spec
@@ -32,6 +32,7 @@ rm -rf $RPM_BUILD_ROOT
/etc/xapi.d/plugins/bandwidth
/etc/xapi.d/plugins/bittorrent
/etc/xapi.d/plugins/config_file
+/etc/xapi.d/plugins/console
/etc/xapi.d/plugins/glance
/etc/xapi.d/plugins/kernel
/etc/xapi.d/plugins/migration
diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/console b/plugins/xenserver/xenapi/etc/xapi.d/plugins/console
new file mode 100755
index 000000000..afcb783f7
--- /dev/null
+++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/console
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+To configure this plugin, you must set the following xenstore key:
+/local/logconsole/@ = "/var/log/xen/guest/console.%d"
+
+This can be done by running:
+xenstore-write /local/logconsole/@ "/var/log/xen/guest/console.%d"
+
+WARNING:
+You should ensure appropriate log rotation to ensure
+guests are not able to consume too much Dom0 disk space,
+and equally should not be able to stop other guests from logging.
+Adding and removing the following xenstore key will reopen the log,
+as will be required after a log rotate:
+/local/logconsole/<dom_id>
+"""
+
+import base64
+import logging
+import os
+import zlib
+
+import XenAPIPlugin
+
+import pluginlib_nova
+pluginlib_nova.configure_logging("console")
+
+CONSOLE_LOG_DIR = '/var/log/xen/guest'
+CONSOLE_LOG_FILE_PATTERN = CONSOLE_LOG_DIR + '/console.%d'
+
+MAX_CONSOLE_BYTES = 102400
+SEEK_SET = 0
+SEEK_END = 2
+
+
+def _last_bytes(file_like_object):
+ try:
+ file_like_object.seek(-MAX_CONSOLE_BYTES, SEEK_END)
+ except IOError, e:
+ if e.errno == 22:
+ file_like_object.seek(0, SEEK_SET)
+ else:
+ raise
+ return file_like_object.read()
+
+
+def get_console_log(session, arg_dict):
+ try:
+ raw_dom_id = arg_dict['dom_id']
+ except KeyError:
+ raise pluginlib_nova.PluginError("Missing dom_id")
+ try:
+ dom_id = int(raw_dom_id)
+ except ValueError:
+ raise pluginlib_nova.PluginError("Invalid dom_id")
+
+ logfile = CONSOLE_LOG_FILE_PATTERN % dom_id
+ try:
+ log_content = pluginlib_nova.with_file(logfile, 'rb', _last_bytes)
+ except IOError, e:
+ msg = "Error reading console: %s" % e
+ logging.debug(msg)
+ raise pluginlib_nova.PluginError(msg)
+ return base64.b64encode(zlib.compress(log_content))
+
+
+if __name__ == "__main__":
+ XenAPIPlugin.dispatch({"get_console_log": get_console_log})
diff --git a/tools/pip-requires b/requirements.txt
index 7db3a2a0b..7db3a2a0b 100644
--- a/tools/pip-requires
+++ b/requirements.txt
diff --git a/setup.cfg b/setup.cfg
index 54127dcfb..1baa22940 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -54,7 +54,15 @@ console_scripts =
nova-xvpvncproxy = nova.cmd.xvpvncproxy:main
nova.api.v3.extensions =
+ consoles = nova.api.openstack.compute.plugins.v3.consoles:Consoles
+ extension_info = nova.api.openstack.compute.plugins.v3.extension_info:ExtensionInfo
fixed_ips = nova.api.openstack.compute.plugins.v3.fixed_ips:FixedIPs
+ ips = nova.api.openstack.compute.plugins.v3.ips:IPs
+ keypairs = nova.api.openstack.compute.plugins.v3.keypairs:Keypairs
+ servers = nova.api.openstack.compute.plugins.v3.servers:Servers
+
+nova.api.v3.extensions.server.create =
+ keypairs_create = nova.api.openstack.compute.plugins.v3.keypairs:Keypairs
[build_sphinx]
all_files = 1
diff --git a/smoketests/base.py b/smoketests/base.py
index c90da102c..1ecb5a92e 100644
--- a/smoketests/base.py
+++ b/smoketests/base.py
@@ -98,7 +98,7 @@ class SmokeTestCase(unittest.TestCase):
try:
conn = self.connect_ssh(ip, key_name)
conn.close()
- except Exception, e:
+ except Exception as e:
time.sleep(wait)
else:
return True
diff --git a/tools/test-requires b/test-requirements.txt
index 1bf372b69..1bf372b69 100644
--- a/tools/test-requires
+++ b/test-requirements.txt
diff --git a/tools/colorizer.py b/tools/colorizer.py
index aa7427e40..a49abb141 100755
--- a/tools/colorizer.py
+++ b/tools/colorizer.py
@@ -232,6 +232,8 @@ class NovaTestResult(testtools.TestResult):
self._addResult(test, 'OK', 'green', '.', True)
def addFailure(self, test, err):
+ if test.id() == 'process-returncode':
+ return
super(NovaTestResult, self).addFailure(test, err)
self._addResult(test, 'FAIL', 'red', 'F', False)
diff --git a/tools/conf/analyze_opts.py b/tools/conf/analyze_opts.py
index 3088d6390..84294c9d3 100755
--- a/tools/conf/analyze_opts.py
+++ b/tools/conf/analyze_opts.py
@@ -44,8 +44,8 @@ class PropertyCollecter(iniparser.BaseParser):
def collect_properties(cls, lineiter, sample_format=False):
def clean_sample(f):
for line in f:
- if line.startswith("# ") and line != '# nova.conf sample #\n':
- line = line[2:]
+ if line.startswith("#") and not line.startswith("# "):
+ line = line[1:]
yield line
pc = cls()
if sample_format:
diff --git a/tools/conf/generate_sample.sh b/tools/conf/generate_sample.sh
index 283d7a654..d0f5c83c9 100755
--- a/tools/conf/generate_sample.sh
+++ b/tools/conf/generate_sample.sh
@@ -19,10 +19,12 @@
FILES=$(find nova -type f -name "*.py" ! -path "nova/tests/*" -exec \
grep -l "Opt(" {} \; | sort -u)
-BINS=$(echo bin/nova-*)
+BINS=$(echo bin/nova-* | grep -v nova-rootwrap)
+
+export EVENTLET_NO_GREENDNS=yes
PYTHONPATH=./:${PYTHONPATH} \
- python $(dirname "$0")/extract_opts.py ${FILES} ${BINS} > \
+ python $(dirname "$0")/../../nova/openstack/common/config/generator.py ${FILES} ${BINS} > \
etc/nova/nova.conf.sample
# Remove compiled files created by imp.import_source()
diff --git a/tools/install_venv.py b/tools/install_venv.py
index dbc7333ec..8d30676df 100644
--- a/tools/install_venv.py
+++ b/tools/install_venv.py
@@ -56,8 +56,8 @@ def main(argv):
if os.environ.get('venv'):
venv = os.environ['venv']
- pip_requires = os.path.join(root, 'tools', 'pip-requires')
- test_requires = os.path.join(root, 'tools', 'test-requires')
+ pip_requires = os.path.join(root, 'requirements.txt')
+ test_requires = os.path.join(root, 'test-requirements.txt')
py_version = "python%s.%s" % (sys.version_info[0], sys.version_info[1])
project = 'Nova'
install = install_venv.InstallVenv(root, venv, pip_requires, test_requires,
diff --git a/tools/lintstack.py b/tools/lintstack.py
index 5c4fb0a3a..cda5f0b3d 100755
--- a/tools/lintstack.py
+++ b/tools/lintstack.py
@@ -34,7 +34,9 @@ ignore_messages = ["An attribute affected in nova.tests"]
# Note(maoy): we ignore all errors in openstack.common because it should be
# checked elsewhere. We also ignore nova.tests for now due to high false
# positive rate.
-ignore_modules = ["nova/openstack/common/", "nova/tests/"]
+# Note(danms): we ignore all errors in nova.objects because the false
+# positive rate should be very high.
+ignore_modules = ["nova/openstack/common/", "nova/tests/", "nova/objects/"]
KNOWN_PYLINT_EXCEPTIONS_FILE = "tools/pylint_exceptions"
diff --git a/tools/patch_tox_venv.py b/tools/patch_tox_venv.py
index 6ae6c2e7f..ebbf766bb 100644
--- a/tools/patch_tox_venv.py
+++ b/tools/patch_tox_venv.py
@@ -25,8 +25,8 @@ def main(argv):
venv = os.environ['VIRTUAL_ENV']
- pip_requires = os.path.join(root, 'tools', 'pip-requires')
- test_requires = os.path.join(root, 'tools', 'test-requires')
+ pip_requires = os.path.join(root, 'requirements.txt')
+ test_requires = os.path.join(root, 'test-requirements.txt')
py_version = "python%s.%s" % (sys.version_info[0], sys.version_info[1])
project = 'nova'
install = install_venv.InstallVenv(root, venv, pip_requires, test_requires,
diff --git a/tox.ini b/tox.ini
index 4d6f3b0a7..70b5d7f54 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py26,py27,pep8
+envlist = py26,py27,py33,pep8
[testenv]
sitepackages = True
@@ -7,8 +7,8 @@ setenv = VIRTUAL_ENV={envdir}
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=C
-deps = -r{toxinidir}/tools/pip-requires
- -r{toxinidir}/tools/test-requires
+deps = -r{toxinidir}/requirements.txt
+ -r{toxinidir}/test-requirements.txt
commands =
python tools/patch_tox_venv.py
python setup.py testr --slowest --testr-args='{posargs}'
@@ -20,8 +20,7 @@ downloadcache = ~/cache/pip
[testenv:pep8]
sitepackages = False
commands =
- flake8
- flake8 --filename=nova* bin
+ flake8 {posargs}
[testenv:pylint]
setenv = VIRTUAL_ENV={envdir}
@@ -40,7 +39,7 @@ commands =
commands = {posargs}
[flake8]
-ignore = E12,E711,E721,E712,H302,H303,H403,H404,F
+ignore = E121,E122,E123,E124,E125,E126,E127,E128,E711,E712,H302,H303,H403,H404,F403,F811,F841
builtins = _
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,plugins,tools